У меня есть две таблицы Products и CustomerProduct. Мне нужно составить объект Entity Framework Core, который возвращает результат на основе аргументов метода конечной точки веб-API.
Метод примерно работает, когда передается customerCode (см. упрощенный код ниже). Однако мне нужно изменить его так, чтобы .Join() использовался только тогда, когда customerCode не равен нулю. Другими словами, .Join() должен применяться условно.
Модель Product определяет обычные атрибуты, доступные каждому. Модель с добавленными дополнительными полями называется Product2.
Как выполнить условный .Join() и как преобразовать модель List
в List, когда .Join() не используется?
public async Task GetAllAsync( // (0)
string? customerCode,
int pageNumber = 1, int pageSize = 10)
{
var products2 = dbContext.Products // (1) public DbSet Products { get; set; }
.Join(dbContext.CustomerProducts, // (2) public DbSet CustomerProducts { get; set; }
z => z.ProductCode,
zz => zz.ProductCode,
(z, zz) => new { // (3)
z.ProductCode, // (4)
z.ProductName,
z.CatalogPrice,
zz.CustomerCode, // (5)
zz.CustomerPrice,
})
.Where(zz => zz.CustomerCode == customerCode) // (6)
.Select(x => new Product2
{
ProductCode = x.ProductCode, // (7)
ProductName = x.ProductName,
CatalogPrice = x.CatalogPrice,
CustomerCode = x.CustomerCode, // (8)
CustomerPrice = x.CustomerPrice,
}).AsQueryable();
// Do the paging.
var skipResults = (pageNumber - 1) * pageSize;
return products2.Skip(skipResults).Take(pageSize).ToList();
}
Подробнее здесь: https://stackoverflow.com/questions/798 ... from-parts
Как условно составить ЭФ из частей? ⇐ C#
Место общения программистов C#
1763646752
Anonymous
У меня есть две таблицы Products и CustomerProduct. Мне нужно составить объект Entity Framework Core, который возвращает результат на основе аргументов метода конечной точки веб-API.
Метод примерно работает, когда передается customerCode (см. упрощенный код ниже). Однако мне нужно изменить его так, чтобы .Join() использовался только тогда, когда customerCode не равен нулю. Другими словами, .Join() должен применяться условно.
Модель Product определяет обычные атрибуты, доступные каждому. Модель с добавленными дополнительными полями называется Product2.
Как выполнить условный .Join() и как преобразовать модель List
в List, когда .Join() не используется?
public async Task GetAllAsync( // (0)
string? customerCode,
int pageNumber = 1, int pageSize = 10)
{
var products2 = dbContext.Products // (1) public DbSet Products { get; set; }
.Join(dbContext.CustomerProducts, // (2) public DbSet CustomerProducts { get; set; }
z => z.ProductCode,
zz => zz.ProductCode,
(z, zz) => new { // (3)
z.ProductCode, // (4)
z.ProductName,
z.CatalogPrice,
zz.CustomerCode, // (5)
zz.CustomerPrice,
})
.Where(zz => zz.CustomerCode == customerCode) // (6)
.Select(x => new Product2
{
ProductCode = x.ProductCode, // (7)
ProductName = x.ProductName,
CatalogPrice = x.CatalogPrice,
CustomerCode = x.CustomerCode, // (8)
CustomerPrice = x.CustomerPrice,
}).AsQueryable();
// Do the paging.
var skipResults = (pageNumber - 1) * pageSize;
return products2.Skip(skipResults).Take(pageSize).ToList();
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79825461/how-to-conditionally-compose-the-ef-from-parts[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия