Ниже приведен метод из моего консольного приложения, вызывающего метод DAL. Каков наилучший способ обернуть это в BLL-методе, чтобы его можно было вызывать непосредственно из презентации? Я работал над проектами в прошлом, где мы все называли из DAL, например, ниже, но лучше ли было бы получить все от BLL?Лучшая практика (упрощение), чтобы обернуть метод, возвращающий список продуктов из DAL в BLL
public static void getAllProducts(int ID)
{
List<Product> productList = new List<Product>();
ProductDA productDA = new ProductDA();
productList = productDA.GetAllProducts(ID);
foreach (Product product in productList)
{
Console.WriteLine(" ProductID:" + product.ProductID);
Console.WriteLine(" Product Name:" + product.ProductName);
Console.WriteLine(" Product Date:" + product.ProductDate);
}
}
Почему IQueryable и не IEnumerable <>? DAL, очевидно, уже возвращает список? – StampedeXV
Я бы не согласился с этим. Если вы передадите IQueryables, у вас нет различий между слоями. Этот IQueryable может быть изменен и фактически запущен из любой точки вашего стека. При использовании репозитория я бы ожидал, что IEnumerable будет передан обратно. –
Гибкий, но полностью неэффективный. Если вы не можете управлять запросами, вы получите полные таблицы дампов/запросов, которые не используют индексы/запросы, которые просят базу данных делать преобразования, которых она не должна. –