向数据库添加实体时出错
本文关键字:出错 实体 添加 数据库 | 更新日期: 2023-09-27 18:04:41
我得到以下异常消息:
保存未公开外键的实体时发生错误属性表示它们之间的关系。EntityEntries属性将会返回null,因为不能将单个实体标识为源属于例外。可以在保存时处理异常通过在实体类型中公开外键属性更容易。看到
我的内部异常与我改变表上的列名有关,因为它们以前没有意义(它们被赋予名称Customer_Customer_ID),并重命名我的Sku和我的Customer对象,它们组成在我的购物车中,使用以下数据注释
[Table("Cart")]
public class Cart
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID { get; set; }
public Guid CartID { get; set; }
[Column("SkuID")]
public virtual Sku Sku { get; set; }
[Required]
public int Quantity { get; set; }
[Column("CustomerID")]
public virtual Customer Customer { get; set; }
public bool IsCheckedOut { get; set; }
}
这是异常消息
的内部异常。"无效的列名'Customer_Customer_ID'。'r'无效列名"Sku_SKU_ID"。"
命名这些组合对象的正确方法是什么,我是否需要修改我的OnModelCreating以反映这些变化到实体框架?
添加一个SkuID
和CustomerId
属性到你的实体类
public class Cart
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID { get; set; }
public Guid CartID { get; set; }
public int SkuID { set;get;}
public virtual Sku Sku { get; set; }
[Required]
public int Quantity { get; set; }
public int CustomerID{ set;get;}
public virtual Customer Customer { get; set; }
public bool IsCheckedOut { get; set; }
}
假设您的Sku和Customer类具有类型为int
的ID属性,并且它是主键。EF将使用Sku
和Customer
表的外键创建Cart表,因为当前的结构遵循约定。
CustomerID
)和导航属性(Customer
)