Потратил на linq минут 30, в итоге — болт и переписал за 30 секунд на православном структурном яп))
// var _productSummary = from c in db.Categories
// join p in db.Products
// on c.Id equals p.CategoryId into cp
// select new { c, cp };
// foreach (var x in _productSummary)
// {
// productSummary.Add(x.c.Name, x.cp.ToList()); // <= Translating this query requires the SQL APPLY operation, which is not supported on SQLite.
// }var categries = db.Categories.ToList();
var products = db.Products.ToList();
foreach (var x in categries)
productSummary.Add(x.Name, products.FindAll(p => p.CategoryId == x.Id));
Как вовремя заменить, что это "чужая колея" (ц) В.С. Высоцкий
Здравствуйте, Буравчик, Вы писали:
Р>>Потратил на linq минут 30, в итоге — болт и переписал за 30 секунд на православном структурном яп))
Б>В твоем варианте сложность O(C*P), в sql варианте сложность O(C+P) при наличии индексов в БД.
Здравствуйте, Разраб, Вы писали:
Р>Потратил на linq минут 30, в итоге — болт и переписал за 30 секунд на православном структурном яп)) Р>
Р> // var _productSummary = from c in db.Categories
Р> // join p in db.Products
Р> // on c.Id equals p.CategoryId into cp
Р> // select new { c, cp };
Р> // foreach (var x in _productSummary)
Р> // {
Р> // productSummary.Add(x.c.Name, x.cp.ToList()); // <= Translating this query requires the SQL APPLY operation, which is not supported on SQLite.
Р> // }
Р> var categries = db.Categories.ToList();
Р> var products = db.Products.ToList();
Р> foreach (var x in categries)
Р> productSummary.Add(x.Name, products.FindAll(p => p.CategoryId == x.Id));
Р>
Здравствуйте, Разраб, Вы писали:
Р>Потратил на linq минут 30, в итоге — болт и переписал за 30 секунд на православном структурном яп)) Р>
Р> // var _productSummary = from c in db.Categories
Р> // join p in db.Products
Р> // on c.Id equals p.CategoryId into cp
Р> // select new { c, cp };
Р> // foreach (var x in _productSummary)
Р> // {
Р> // productSummary.Add(x.c.Name, x.cp.ToList()); // <= Translating this query requires the SQL APPLY operation, which is not supported on SQLite.
Р> // }
Р> var categries = db.Categories.ToList();
Р> var products = db.Products.ToList();
Р> foreach (var x in categries)
Р> productSummary.Add(x.Name, products.FindAll(p => p.CategoryId == x.Id));
Р>
Главное что бы в этих таблицах не было миллионов рекордов. Materialization is a bitch...