如何将子资源与父资源关联使用 Entity Framework Core

how to associate a child resource with a parent resource use Entity Framework Core

我有问题需要你的帮助。如果你能帮助我,非常感谢

public class A
{
    public Guid AId { get; set; }
    public string Name { get; set; }

    public B B { get; set; }
}

public class B
{
    public Guid BId { get; set; }
    public string Name { get; set; }

    public Guid AId { get; set; }
    public A A{ get; set; }
}

如你所见,A是B的父资源。

现在先上传资源B,再上传资源A。

// Example

// first 
BId Name AId
xxx BBB  null

// secondly
AId Name
yyy AAA

我上传资源B时,没有创建资源A。之后如何使用Entity Framework Core 并关联它们。

When I uploaded resource B, resource A was not created. After that, how can I to use Entity Framework Core and to associate them。

如果想先添加B数据而不分配字段AId,请将classB中的AId设置为允许空.

 public Guid? AId { get; set; }

首先,将B添加到数据库如下:

        B datab = new B()
        {
            BId = new Guid("0aa45a56-718e-44db-b5e0-894214772307"),
            Name = "bName1"
        };
        _context.B.Add(datab);
        _context.SaveChanges();

此后tableB数据如下:

当你创建一个A对象时,你已经能够获取到对应B对象的数据,那么你只需要将B对象的datab赋值给A对象的B字段即可添加他们的关系.

然后将A添加到数据库如下:

    A dataa = new A() 
    { 
        AId = new Guid("31d23cb1-1a30-472f-8637-671f242c7438"), 
        Name = "aName1" 
    };
    dataa.B = datab; // this is the key to add AId value to B table
    _context.A.Add(dataa); 
    _context.SaveChanges();

执行这段代码后,这里是tableA的数据:

然后刷新tableB,这是它的最新数据: