Можно ли отобразить объединенный запрос в DataGridView? - PullRequest
0 голосов
/ 17 ноября 2018

У меня есть приложение Entity Framework, и мне нужно установить свойство DataSource объекта BindingSource на результат присоединенного запроса следующим образом:

var joined = _context.Products.Join(_context.Categories, p=>p.CategoryId, c=>c.CategoryId, (product, category) => new
        {
            ProductName = product.Name,
            CategoryName = category.Name
        });

Возможно ли это, или источники данных должны соответствовать DbSet <> s? Например, это работает:

this.supplierBindingSource.DataSource = _context.Suppliers.Local.ToBindingList();

С уважением, Juan

Ответы [ 2 ]

0 голосов
/ 18 ноября 2018

Окончательное решение:

var theList = joined.ToList();
var bindList = new BindingList<ProductCategory>(theList);
this.dataGridView4.DataSource = bindList;

Это работает!

0 голосов
/ 17 ноября 2018

Полагаю, вы захотите создать класс для результатов объединения и создать его, как показано ниже:

    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
        });
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...