[英]EF Error - The property is part of the object's key information and cannot be modified .
目前我正在开发一个我正在使用Entity Framework代码的应用程序。
我有一个TransactionDetails类,如下所示
[Table("TransactionDetails")]
public class TransactionDetails
{
[DatabaseGenerated(System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption.None)]
[Key]
public int? TransactionRow { get; set; }
public int? TransactionID { get; set; }
public int AccountID { get; set; }
public string AccountType { get; set; }
public DateTime TransactionDate { get; set; }
public float Credit { get; set; }
public float Debit { get; set; }
}
此外,我试图将一条记录插入到表中插入代码如下所示
setTransactionID();
try
{
bankingApplicationDBContext.transactiondetails.Add(_creditTransaction);
bankingApplicationDBContext.SaveChanges();
bankingApplicationDBContext.transactiondetails.Add(_debitTransaction);
bankingApplicationDBContext.SaveChanges();
}
catch (Exception ex)
{
}
其中_creditTransaction和_debitTransaction是Transaction Details类的两个不同对象。
方法setTransactionID()包含如下所示的代码。
public void setTransactionID()
{
try
{
int TransactionID = Convert.ToInt32(bankingApplicationDBContext.transactiondetails.Max(x => x.TransactionID)) + 1;
int TransactionRow = Convert.ToInt32(bankingApplicationDBContext.transactiondetails.Max(x => x.TransactionRow)) + 1;
_creditTransaction.TransactionRow = TransactionRow;
_creditTransaction.TransactionID = TransactionID;
_debitTransaction.TransactionRow = TransactionRow + 1;
_debitTransaction.TransactionID = TransactionID;
}
catch(Exception ex)
{
throw ex;
}
}
在这里,当我在表单中输入字段时,我生成的TransactionRow和TransactionID字段作为自动生成的字段和对象的其余属性被分配。
现在问题是这些对象第一次正确插入数据,但是当对象_creditTransaction和_debitTransaction的实例处于活动状态并且我尝试第二次插入数据时,它会给出一条错误消息
属性“TransactionRow”是对象的关键信息的一部分,无法修改。
任何人都可以帮我解决这个问题。
谢谢。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.