Ste*_*rno 3 entity-framework-6
我有一个数据库结构,其中我有一个设备表中的列Equipment_Id,Field_1和Field_2。我有一个 Equipment_Locale 表,其中包含字段Equipment_Id和Desc。两个表中的Id相同,并且这些表之间存在一对一的关系。
我有以下实体:
public class Equipment
{
public long Id { get; set; }
public string Description { get; set; }
public long Field1 { get; set; }
public long Field2 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我有以下 EntityTypeConfiguration:
public class EquipmentMapping : EntityTypeConfiguration<Equipment>
{
public EquipmentMapping()
{
ToTable("EQUIPMENT");
HasKey(e => e.Id);
Property(e => e.Id).HasColumnName("EQUIPMENT_ID");
Property(e => e.Field1).HasColumnName("FIELD_1");
Property(e => e.Field2).HasColumnName("FIELD_2");
// TODO: Okay, now I need to get the description in here!
}
}
Run Code Online (Sandbox Code Playgroud)
不过,我需要在那里映射描述,它来自 EQUIPMENT_LOCALE 表的 DESC 列。
如果我在 ModelBuilder 中定义映射,这个答案让我对如何使用它有一个非常清晰的想法。但是,我们一直在这个项目中使用带有 EntityTypeConfigurations 的文件,并且只是让模型构建器添加这些配置,我不确定如何在其中一个中设置两个表映射。我怎样才能做到这一点?
事实证明,我在 ModelBuilder 中链接的答案真的非常接近我需要简单地放入我的 EntityTypeConfiguration 文件的答案。我之前从未在 EntityTypeConfiguration 中使用过 Map() 所以我有点无能为力。
以下似乎对我有用:
public class EquipmentMapping : EntityTypeConfiguration<Equipment>
{
public EquipmentMapping()
{
HasKey(e => e.Id);
Property(e => e.Id).HasColumnName("EQUIPMENT_ID");
Property(e => e.Field1).HasColumnName("FIELD_1");
Property(e => e.Field2).HasColumnName("FIELD_2");
Property(e => e.Description).HasColumnName("DESC");
Map(m =>
{
m.Properties(e => new
{
e.Id,
e.Field1,
e.Field2
});
m.ToTable("EQUIPMENT");
});
Map(m =>
{
m.Properties(e => new
{
e.Id,
e.Description
});
m.ToTable("EQUIPMENT_LOCALE");
});
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2165 次 |
| 最近记录: |