gpt4 book ai didi

entity-framework-6 - 如何将两个表映射到 EntityTypeConfiguration 中的一个实体?

转载 作者:行者123 更新时间:2023-12-04 02:21:29 25 4
gpt4 key购买 nike

我有一个数据库结构,其中有一个设备表,其中包含列 Equipment_IdField_1Field_2。我有一个 Equipment_Locale 表,其中包含字段 Equipment_IdDesc。两个表中的Id相同,并且这些表之间存在一对一的关系。

我有以下实体:

public class Equipment
{
public long Id { get; set; }
public string Description { get; set; }
public long Field1 { get; set; }
public long Field2 { get; set; }
}

我有以下 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!
}
}

不过,我需要在其中映射描述,它来自 EQUIPMENT_LOCALE 表的 DESC 列。

This answer如果我在 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");
});
}
}

关于entity-framework-6 - 如何将两个表映射到 EntityTypeConfiguration 中的一个实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28752262/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com