Как массово установить внешний ключ Null? EF Core
Есть такие модели
public class Product // Товар
{
public int Id { get; set; }
public string Name { get; set; }
public int CategoryId { get; set; }
public ProductCategory Category { get; set; }
}
public class ProductCategory // Категория товаров
{
public int Id { get; set; }
public string Name { get; set; }
public List<Product> Products { get; set; } = new List<Product>();
}
Мне нужно массово изменить у товаров категорию null, в которых CategoryId = 1
Я пытаюсь сделать так
await _context.Products.Where(w => w.Id == 1)
.ExecuteUpdateAsync(s=>s.SetProperty(u=>u.Category, u=>u.Category = null));
Но получаю ошибку
An expression tree may not contain an assignment operator
Как мне решить эту задачу?
Ответы (1 шт):
Автор решения: Nikita
→ Ссылка
Сам нашёл решение
В модели сделал CategiryId необязательным, добавив int?
public class Product // Товар
{
public int Id { get; set; }
public string Name { get; set; }
public int? CategoryId { get; set; }
public ProductCategory Category { get; set; }
}
Потом в контроллере делаю так:
await _context.Products.Where(w => w.Id == 1)
.ExecuteUpdateAsync(s=>s.SetProperty(u=> u.CategoryId, u=> null));