【发布时间】:2020-02-20 14:48:24
【问题描述】:
我在 .NET Core Entity 框架中使用 DB 优先方法构建了一个数据库模型。我的数据库中有几个多对多关系,它们都用连接表表示。
像这样:
public partial class Test1
{
public Test1()
{
Test1_Test2= new HashSet<Test1_Test2>();
}
public int Id { get; set; }
..
public virtual ICollection<Test1_Test2> Test1_Test2{ get; set; }
}
public partial class Test2
{
public Test2()
{
Test1_Test2= new HashSet<Test1_Test2>();
}
public int Id { get; set; }
..
public virtual ICollection<Test1_Test2> Test1_Test2{ get; set; }
}
public partial class Test1_Test2
{
public int Test1Id{ get; set; }
public int Test2Id{ get; set; }
public virtual Test1 Test1{ get; set; }
public virtual Test2 Test2{ get; set; }
}
EF 构建了一个支持这种结构的 Fluent API,在连接表中有外键和复合主键。
当我要在这个关系中添加一些东西时,这是一个乏味的操作,我必须按照这个思路做一些事情,以便正确地填充我的连接表:
_context.Test1.Add(Test1);
_context.Test2.Add(Test2);
Test1_Test2.Test1 = Test1;
Test1_Test2.Test2 = Test2;
_context.Test1_Test2.Add(Test1_Test2);
_context.SaveChanges();
从 .NET Framework 中的旧 EF 开始,我记得执行自动映射器功能是一种直截了当的做法,这将使我只能执行以下操作:
Test1.Test2 = Test2;
_context.Test1.Add(Test1);
_context.SaveChanges();
这很方便,因为 EF 会计算出如何自动填充连接表。当我必须从这些表中提出请求时,这也更加方便。
因此,我如何首先在 .Net Core EF DB 中添加“自动映射器”功能 - 这甚至受支持吗?
【问题讨论】:
标签: c# entity-framework asp.net-core