繁体   English   中英

EF错误 - 属性是对象的关键信息的一部分,无法修改。

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM