Как массово установить внешний ключ 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));
→ Ссылка