【发布时间】:2019-05-15 21:24:48
【问题描述】:
我正在使用 Entity Framework Core 和 Fluent API 开发一个 ASP.NET Core (2.2) 项目。 我想将两个表列(其中一个是主键)映射到单个模型属性。
假设我们有一个名为 sample_table 的表,由列组成:
|---------------------|------------------|------------------|
| Column1_PK | Column2 | Column3 |
|---------------------|------------------|------------------|
我想将一个模型字段映射到多个列。我猜我可以嵌套多个HasColumnName,如下例所示:
public class MyContext : DbContext
{
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
builder.Entity<MyModel>().ToTable("sample_table");
builder.Entity<MyModel>()
.HasKey(m => m.MyId);
builder.Entity<MyModel>()
.Property(m => m.MyId)
.HasColumnName("Column1_PK")
.HasColumnName("Column2"); // I would like to map the Column1_PK and Column2 to m.MyId
builder.Entity<MyModel>()
.Property(m => m.OtherColumn)
.HasColumnName("Column3");
}
}
上述方法不起作用。 有没有办法实现这个功能?
【问题讨论】:
-
您是否尝试过使用数据注释?而不是流畅的 API。 docs.microsoft.com/en-us/ef/core/modeling/relational/…
-
我认为没有什么好方法可以做你想做的事(至少我不知道)。我一直在跟踪这个,因为我也想做类似的事情。理论上可以使用
OwnedTypes,但它们不支持“拥有类型”中的主键。此问题跟踪此 github.com/aspnet/EntityFrameworkCore/issues/9906 的可能功能
标签: c# asp.net entity-framework-core