2012-10-23 217 views
0

我正在使用最新的实体框架与代码优先的方法。 我有这样的类:实体框架插入新实体

[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',这是Customers表中的正常varchar列。加载所有数据工作得很好,只是保存有问题。

一些额外的细节:当创建新的事务时,我不设置Customer属性,只是CustomerId。不确定这是否与这个问题有关。

+0

这一切对我来说都很好,你是否100%确定客户在数据库中有'CustomerInitials'列? –

回答

0

哦,我没有深入了解这个例外。它出现了表的插入触发器错误。