EF通用存储库模式 - 在插入具有子实体的根实体时插入/创建方法问题

时间:2018-05-17 07:26:47

标签: c# insert entity-framework-6 primary-key repository-pattern

public class A
{
    string Id {get; set;}
    string Property_1 {get; set;}
    string Property_2 {get; set;}

    // Foreign Key for Class B
    string B_Id {get; set;}
    // Many to One Relationship
    B objectOfClassB {get; set;}

    // One to Many Relationship
    ICollection<objectOfClassC> listOfClassC {get; set;}
}

我们有一个A类对象,我们正试图插入。我们也传递了B类和B类的价值观。 C类(List),它是A类的子实体。

在插入时,我们首先要检查子实体,即ObjectofClassB的值是否不存在于数据库表中。如果它存在,只需将相同的外键添加到A类表。

那么我们怎样才能阻止分离或不插入objectOfClassB(子实体)?

注意 - 我想插入listOfClassC(另一个子实体)

1 个答案:

答案 0 :(得分:0)

首先检查数据库中是否有B类 例如:

var b = dbContext.B.FirstOrDefault()
if(b != null)
{
A.objectOfClassB = b;
//.. do something else or persist
}

用于添加集合objectOfClassC 只需将其添加到A.listOfClassC并添加 &#34; A&#34; db EF将为您在DB中创建objectOfClassC实体。