我是 EF 的新手,被困在我的一个场景中,我需要在其中创建或使用引用表中的键。用户可以在参考表中创建新记录,也可以使用现有记录。为此,我创建了我的实体模型,如下所示:
Public class MaterialLineEntry()
{
EntryNumber = 0,
OrganisationID=0,
Organisation Organisation
};
和
Public class Organisation ()
{
ID = 0,
Description = "Test",
EntityChangeStatus ;
};
这些行条目在另一个名为 Report 的实体中定义
Public class Report()
{
List< MaterialLineEntry> materilaLineEntries;
};
如果我输入如下所示的详细信息并将对象(报告)附加到 UnitOfWork 并对其进行注释,则一切正常。实体框架在引用表中创建一条记录,并使用新生成的外键将其输入到行条目表中。
Report report =new Reort();
report. materilaLineEntries.Add(new MaterialLineEntry()
{
EntryNumber=1,
OrganisationID=0,
Organisation=new Organisation()
{
ID = 0,
Description = "Test",
EntityChangeStatus = EntityChangeStatus.Unchanged,
}
})
但是当我将两个对象添加到具有相同组织详细信息的行条目时:
report. materilaLineEntries.Add(new MaterialLineEntry()
{
EntryNumber=1,
OrganisationID=0,
Organisation=new Organisation()
{
ID = 0,
Description = "Test",
EntityChangeStatus = EntityChangeStatus.Unchanged,
}
})
它应该使用先前创建的外键(因为我可能有一个唯一的约束)。当我试图在参考表中插入重复记录时。我在这里需要的是,实体框架工作应该添加第一个组织详细信息,并且应该对相同记录的后续出现使用相同的 ID(在本例中为描述列)。
请帮我解决这个问题。提前致谢。(我曾想过将外表中的数据一一添加,并进一步使用外键,但我想这是个坏主意)。