WindowsForms EFCore SQL异常无效列名

WindowsForms EFCore SQL异常无效列名,sql,winforms,entity-framework-core,Sql,Winforms,Entity Framework Core,我有两个表产品和类别。当我将一个产品添加到产品中时,我会得到一个错误。我共享代码 class Products { public int Id { get; set; } public string Name { get; set; } public float Price { get; set; } public string Description { get; set; } public int CategoryId { get; set; }

我有两个表产品和类别。当我将一个产品添加到产品中时,我会得到一个错误。我共享代码

class Products
{
    public int Id { get; set; }
    public string Name { get; set; }
    public float Price { get; set; }
    public string Description { get; set; }
    public int CategoryId { get; set; }


    public string CategoryName { get; set; }
    public Categories Category { get; set; }
    
}
用这种方法,我得到了产品。填充datagridview之后。但我想看categoryName而不是CategoryId。它可以工作,我在datagridview中看到categoryName而不是CategoryId

 public List<Products> GetProducts()
    {
        var products = context.Products.Include(x =>x.Category ).Select(m => new Products()
        {
            Id = m.Id,
            Name = m.Name,
            Price = m.Price,
            Description = m.Description,
            CategoryName=m.Category.Name
        }).ToList();

        return products;
    }
但是,当我尝试添加新产品时,我出现了一个错误


问题在于类别名称不在物理表中,而只在对象中。因此,当EF试图生成SQL时,它找不到名为CategoryName的列

看看这个问题

  public void AddProduct(Products products )
    {
        context.Products.Add(products);
        context.SaveChanges();
    }