我正在尝试使用下面的
检索更新记录var product= _db.Products.SingleOrDefault(x => x.Id == id);
if (product!= null)
{
product.StatusId = statusId;
_db.SaveChanges();
}
产品型号
public int Id { get; set; }
public int TypeId { get; set; }
public int? CategoryId { get; set; }
public int? StatusId { get; set; }
public string Name { get; set; }
public ProductStatus Status { get; set; }
public ICollection<ProductStatus> ProductStatuses { get; set; }
但是,在第一行中检索记录时,会抛出一个异常{"Invalid column name 'ProductStatus_Id'."}
我有一个ProductStatus表,但不确定它是否与它有任何关系
答案 0 :(得分:1)
您的模型没有为ProductStatus
表指定外键,因此它尝试使用EF的默认约定,即查找名为&#34; ProductStatus_Id&的字段#34;
您可以通过向ProductStatus_Id
表添加名为Products
的列(并将其设为FK到ProductStatus
)来修复它,或者您可以使用数据注释来指定name(也有匹配的列)。
或者,如果您不需要Product.ProductStatus
,请从Product
删除该属性(您可以暂时进行测试。
编辑: 这个页面(第一个google点击&#34; ef外键&#34;,没有从属关系)有一些例子http://www.entityframeworktutorial.net/code-first/foreignkey-dataannotations-attribute-in-code-first.aspx