C# 新的外国实体是';t使用更新创建

C# 新的外国实体是';t使用更新创建,c#,entity-framework,C#,Entity Framework,当我向实体的虚拟集合属性添加新项时,它将被添加到数据库中 比如说 Loan.Notes.Add(new Note {Subject = "Test"}) 这将在Notes表中创建一个新行,并显示链接的loanId 我试图将这个精确的工作功能复制到另一个表中。我在点击save之前设置了一个断点,我可以看到集合有新的实体,但它不会创建。我不明白为什么它在一个场景中有效,而在另一个场景中无效 Notes完全可以保存,但状态历史记录不能保存 public void Save() { forea

当我向实体的虚拟集合属性添加新项时,它将被添加到数据库中

比如说

Loan.Notes.Add(new Note {Subject = "Test"})
这将在Notes表中创建一个新行,并显示链接的loanId

我试图将这个精确的工作功能复制到另一个表中。我在点击save之前设置了一个断点,我可以看到集合有
新的
实体,但它不会创建。我不明白为什么它在一个场景中有效,而在另一个场景中无效

Notes完全可以保存,但状态历史记录不能保存

public void Save()
{
    foreach (var noteDTO in Notes.Where(x => x.NewRecord))
    {
        Loan.Notes.Add(new Note
        {
            Subject  = noteDTO.Subject,
            Comments = noteDTO.Comments,
            Active   = noteDTO.Active,
            Loan     = Loan,
            Loan_Id  = Loan.Id
        });
    }


    foreach (var status in StatusHistory.Where(x => x.Id == 0))
    {
        Loan.StatusHistory.Add(
            new LoanStatusHistory
                {
                    Loan_Id        = Loan.Id,
                    Active         = status.Active,
                    IsCurrent      = status.Current,
                    Date           = status.StatusDate.Value.Date,
                    StatusReason   = status.Reason,
                    LoanStatus_Id  = status.Status_Id.Value,
                    Order          = status.Order.Value,
                    Created        = DateTime.Now,
                    CreatedBy      = CurrentUser.GetInstance().MyUser.Id,
                    Modified       = DateTime.Now,
                    LastModifiedBy = CurrentUser.GetInstance().MyUser.Id
                });
        }             
    }
    UnitOfWork.LoanRepository.Update(Loan);
    UnitOfWork.Save();
}
在笔记和状态模型中,我设置了与贷款的虚拟关系

public virtual Loan Loan { get; set; }
在贷款模型中,我设置了与票据和状态的虚拟关系

public virtual ICollection<LoanStatusHistory> StatusHistory { get; set; }
public virtual ICollection<Note> Notes { get; set; }
public虚拟ICollection StatusHistory{get;set;}
公共虚拟ICollection注释{get;set;}

我想知道是否有人能给我一些建议或提示来解决这个问题

在何处向贷款对象添加状态历史记录/注释?我看到您将贷款添加到StatusHistory/Notes中,但从未将其插入StatusHistory/Notes表中。很抱歉,我复制了更新代码,现在进行更改。您的代码是否适用于StatusHistory,但不适用于Notes?您好@MarcCals它适用于Notes,而不适用于StatusHistory两者之间存在细微差别,但我不知道这是否是原因,如果不看看如何配置与实体框架的关系。Notes具有Loan属性,StatusHistory编号。将StatusHistory/Notes添加到Loan对象的位置?我看到您将贷款添加到StatusHistory/Notes中,但从未将其插入StatusHistory/Notes表中。很抱歉,我复制了更新代码,现在进行更改。您的代码是否适用于StatusHistory,但不适用于Notes?您好@MarcCals它适用于Notes,而不适用于StatusHistory两者之间存在细微差别,但我不知道这是否是原因,如果不看看如何配置与实体框架的关系。Notes具有Loan属性,StatusHistory编号。将StatusHistory/Notes添加到Loan对象的位置?我看到您将贷款添加到StatusHistory/Notes中,但从未将其插入StatusHistory/Notes表中。很抱歉,我复制了更新代码,现在进行更改。您的代码是否适用于StatusHistory,但不适用于Notes?您好@MarcCals它适用于Notes,而不适用于StatusHistory两者之间存在细微差别,但我不知道这是否是原因,如果不看看如何配置与实体框架的关系。票据具有贷款性质,状态历史编号。