Is it possible to display a joined query in a DataGridView?
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}
I have an Entity Framework application and I need to set the DataSource property of a BindingSource to the result of a joined query like so:
var joined = _context.Products.Join(_context.Categories, p=>p.CategoryId, c=>c.CategoryId, (product, category) => new
{
ProductName = product.Name,
CategoryName = category.Name
});
Is this possible or DataSources must equate to DbSet<>s?
For instance, this works:
this.supplierBindingSource.DataSource = _context.Suppliers.Local.ToBindingList();
Regards,
Juan
c# entity-framework
add a comment |
I have an Entity Framework application and I need to set the DataSource property of a BindingSource to the result of a joined query like so:
var joined = _context.Products.Join(_context.Categories, p=>p.CategoryId, c=>c.CategoryId, (product, category) => new
{
ProductName = product.Name,
CategoryName = category.Name
});
Is this possible or DataSources must equate to DbSet<>s?
For instance, this works:
this.supplierBindingSource.DataSource = _context.Suppliers.Local.ToBindingList();
Regards,
Juan
c# entity-framework
add a comment |
I have an Entity Framework application and I need to set the DataSource property of a BindingSource to the result of a joined query like so:
var joined = _context.Products.Join(_context.Categories, p=>p.CategoryId, c=>c.CategoryId, (product, category) => new
{
ProductName = product.Name,
CategoryName = category.Name
});
Is this possible or DataSources must equate to DbSet<>s?
For instance, this works:
this.supplierBindingSource.DataSource = _context.Suppliers.Local.ToBindingList();
Regards,
Juan
c# entity-framework
I have an Entity Framework application and I need to set the DataSource property of a BindingSource to the result of a joined query like so:
var joined = _context.Products.Join(_context.Categories, p=>p.CategoryId, c=>c.CategoryId, (product, category) => new
{
ProductName = product.Name,
CategoryName = category.Name
});
Is this possible or DataSources must equate to DbSet<>s?
For instance, this works:
this.supplierBindingSource.DataSource = _context.Suppliers.Local.ToBindingList();
Regards,
Juan
c# entity-framework
c# entity-framework
asked Nov 16 '18 at 21:51
Juan DentJuan Dent
1031213
1031213
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
I believe you would want to create a class for the results of the join and instantiate that as below:
class ProductCategory
{
string ProductName { get; set; }
string CategoryName { get; set; }
}
private void test()
{
var joined = _context.Products.Join(_context.Categories, p => p.CategoryId, c => c.CategoryId, (product, category) => new ProductCategory
{
ProductName = product.Name,
CategoryName = category.Name
});
}
That's just the first step. The problem is how can you set the DataSource property to a BindingList! So for example, adding the class you suggest allows us to create a DataSource (based on that class) but there is no way to bind that to a binding source or DataGridView because we cannot do this: this.productCategoryBindingSource.DataSource = joined.Local.ToBindingList();
– Juan Dent
Nov 17 '18 at 23:09
add a comment |
The final solution is:
var theList = joined.ToList();
var bindList = new BindingList<ProductCategory>(theList);
this.dataGridView4.DataSource = bindList;
This works!
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53345911%2fis-it-possible-to-display-a-joined-query-in-a-datagridview%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
I believe you would want to create a class for the results of the join and instantiate that as below:
class ProductCategory
{
string ProductName { get; set; }
string CategoryName { get; set; }
}
private void test()
{
var joined = _context.Products.Join(_context.Categories, p => p.CategoryId, c => c.CategoryId, (product, category) => new ProductCategory
{
ProductName = product.Name,
CategoryName = category.Name
});
}
That's just the first step. The problem is how can you set the DataSource property to a BindingList! So for example, adding the class you suggest allows us to create a DataSource (based on that class) but there is no way to bind that to a binding source or DataGridView because we cannot do this: this.productCategoryBindingSource.DataSource = joined.Local.ToBindingList();
– Juan Dent
Nov 17 '18 at 23:09
add a comment |
I believe you would want to create a class for the results of the join and instantiate that as below:
class ProductCategory
{
string ProductName { get; set; }
string CategoryName { get; set; }
}
private void test()
{
var joined = _context.Products.Join(_context.Categories, p => p.CategoryId, c => c.CategoryId, (product, category) => new ProductCategory
{
ProductName = product.Name,
CategoryName = category.Name
});
}
That's just the first step. The problem is how can you set the DataSource property to a BindingList! So for example, adding the class you suggest allows us to create a DataSource (based on that class) but there is no way to bind that to a binding source or DataGridView because we cannot do this: this.productCategoryBindingSource.DataSource = joined.Local.ToBindingList();
– Juan Dent
Nov 17 '18 at 23:09
add a comment |
I believe you would want to create a class for the results of the join and instantiate that as below:
class ProductCategory
{
string ProductName { get; set; }
string CategoryName { get; set; }
}
private void test()
{
var joined = _context.Products.Join(_context.Categories, p => p.CategoryId, c => c.CategoryId, (product, category) => new ProductCategory
{
ProductName = product.Name,
CategoryName = category.Name
});
}
I believe you would want to create a class for the results of the join and instantiate that as below:
class ProductCategory
{
string ProductName { get; set; }
string CategoryName { get; set; }
}
private void test()
{
var joined = _context.Products.Join(_context.Categories, p => p.CategoryId, c => c.CategoryId, (product, category) => new ProductCategory
{
ProductName = product.Name,
CategoryName = category.Name
});
}
answered Nov 17 '18 at 1:41
Jon VoteJon Vote
38710
38710
That's just the first step. The problem is how can you set the DataSource property to a BindingList! So for example, adding the class you suggest allows us to create a DataSource (based on that class) but there is no way to bind that to a binding source or DataGridView because we cannot do this: this.productCategoryBindingSource.DataSource = joined.Local.ToBindingList();
– Juan Dent
Nov 17 '18 at 23:09
add a comment |
That's just the first step. The problem is how can you set the DataSource property to a BindingList! So for example, adding the class you suggest allows us to create a DataSource (based on that class) but there is no way to bind that to a binding source or DataGridView because we cannot do this: this.productCategoryBindingSource.DataSource = joined.Local.ToBindingList();
– Juan Dent
Nov 17 '18 at 23:09
That's just the first step. The problem is how can you set the DataSource property to a BindingList! So for example, adding the class you suggest allows us to create a DataSource (based on that class) but there is no way to bind that to a binding source or DataGridView because we cannot do this: this.productCategoryBindingSource.DataSource = joined.Local.ToBindingList();
– Juan Dent
Nov 17 '18 at 23:09
That's just the first step. The problem is how can you set the DataSource property to a BindingList! So for example, adding the class you suggest allows us to create a DataSource (based on that class) but there is no way to bind that to a binding source or DataGridView because we cannot do this: this.productCategoryBindingSource.DataSource = joined.Local.ToBindingList();
– Juan Dent
Nov 17 '18 at 23:09
add a comment |
The final solution is:
var theList = joined.ToList();
var bindList = new BindingList<ProductCategory>(theList);
this.dataGridView4.DataSource = bindList;
This works!
add a comment |
The final solution is:
var theList = joined.ToList();
var bindList = new BindingList<ProductCategory>(theList);
this.dataGridView4.DataSource = bindList;
This works!
add a comment |
The final solution is:
var theList = joined.ToList();
var bindList = new BindingList<ProductCategory>(theList);
this.dataGridView4.DataSource = bindList;
This works!
The final solution is:
var theList = joined.ToList();
var bindList = new BindingList<ProductCategory>(theList);
this.dataGridView4.DataSource = bindList;
This works!
answered Nov 17 '18 at 23:58
Juan DentJuan Dent
1031213
1031213
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53345911%2fis-it-possible-to-display-a-joined-query-in-a-datagridview%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown