目前我正在开发一个我正在使用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”是对象密钥信息的一部分,无法修改。
任何人都可以帮我解决这个问题。
谢谢。