我正在使用带有代码优先方法的最新实体框架。我有这样的课程:
[Serializable]
public class Customer
{
[Key]
public int Id { get; set; }
public string CustomerInitials { get; set; }
[InverseProperty("Customer")]
public virtual List<Transaction> Transactions { get; set; }
}
[Serializable]
public class Transaction
{
[Key]
public int Id { get; set; }
public int CustomerId { get; set; }
[InverseProperty("Transactions")]
public virtual Customer Customer { get; set; }
}
当我想输入一个新条目时,我会IDbSet<Customer>
在我的上下文中找到相应的客户并调用
customer.Transactions.Add(newTrasnaction)
context.SaveChanges();
这给了我Invalid column name 'CustomerInitials'
,这是表中的普通 varchar 列Customers
。加载所有数据工作得很好,只是保存有问题。
一些额外的细节:创建新事务时,我没有设置 Customer 属性,只设置了 CustomerId。不确定这是否与此问题有关。