Я пытаюсь вернуть тип списка из AccessLayer в сетку данных в форме Windows, но получаю ArguementNullException - PullRequest
0 голосов
/ 27 января 2019

Я пытаюсь продолжать развивать свою программу, чтобы улучшить свои знания по C #

Но я снова застрял.

Проблема в

Я пытаюсь вызвать метод внутри бизнес-уровня, чтобы заполнить мое представление данных продукта.

здесь вы можете увидеть мой снимок экрана

 public  List<Product> GetProductWithCategories()
        {
            using (DenemeContext context=new DenemeContext())
            {
                var query = (from pro in context.Products
                       join cat in context.Categories
                       on pro.CategoryId equals cat.CategoryId
                       select new
                       {
                           ProductID = pro.ProductId,
                           ProductName = pro.ProductName,
                           ProductCategor = cat.CategoryName
                       }).ToList();
                return query.ToList();
            }

Я получаю ошибку в ответ на запрос.Я пытаюсь преобразовать запрос в Ienumerable, поскольку этот метод является методом List.

Как мне справиться с этой проблемой?(Я могу перечислить таблицу с помещением этого кода в основную форму, но я хотел бы взять результат в бизнес-слое).

и вы можете проверить мои коды на Github, если хотите

спасибо.

1 Ответ

0 голосов
/ 27 января 2019

Вам необходимо указать имя класса Product после select new оператора.Это будет указывать компилятору, что вы возвращаете список конкретного класса.Без имени класса вы возвращаете список анонимного типа, который не равен List<Product>

public  List<Product> GetProductWithCategories()
{
    using (DenemeContext context=new DenemeContext())
    {
        var query = (from pro in context.Products
               join cat in context.Categories
               on pro.CategoryId equals cat.CategoryId
               select new Product
               {
                   ProductID = pro.ProductId,
                   ProductName = pro.ProductName,
                   ProductCategor = cat.CategoryName
               }).ToList();
        return query.ToList();
    }
}
...