Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何通过映射表映射EF对象_C#_Entity Framework_Entity Framework 6_Ef Code First_Ef Code First Mapping - Fatal编程技术网

C# 如何通过映射表映射EF对象

C# 如何通过映射表映射EF对象,c#,entity-framework,entity-framework-6,ef-code-first,ef-code-first-mapping,C#,Entity Framework,Entity Framework 6,Ef Code First,Ef Code First Mapping,我有两个数据库表--Customer\u值和Customer\u属性。。。而且是。。。哑的糟透了 客户价值观包括 CustomerId | AttributeId | Value -------------------------------- 01 | 01 | Steve 02 | 01 | Frank 01 | 02 | Smith etc... 客户属性如下所示 Attribute

我有两个数据库表--Customer\u值和Customer\u属性。。。而且是。。。哑的糟透了

客户价值观包括

CustomerId | AttributeId | Value
--------------------------------
        01 |          01 | Steve
        02 |          01 | Frank
        01 |          02 | Smith 

etc...
客户属性如下所示

AttributeId |      Value
------------------------
         01 | First Name
         02 |  Last Name
我想把第一个表映射成这样的实体对象

类{
字符串名{get;set;}
字符串LastName{get;set;}
}
但我一点也不知道该怎么做


我使用的是EF 6,先编码,假设您的上下文如下(注意FK引用,我们可以使用模型,通过Customer_值启用FK引用):

希望这能给你一个正确的想法


假设您的上下文如下(请注意FK引用,我们可以使用该模型通过Customer_值启用FK引用):

希望这能给你一个正确的想法


有什么特别的原因让你想将它们一起映射到一个实体对象,而不是作为两个单独的实体映射到对象,然后再使用LINQ/EF Core进行连接?@SamMullinix——这只是因为在没有通过
AttributeId
过滤的情况下,我永远不会从值表中提取实例。我宁愿先做这些,为了便于使用。您想将它们一起映射到实体对象,而不是作为两个单独的实体映射到对象,然后再使用LINQ/EF Core进行连接吗?@SamMullinix——这只是因为在没有筛选的情况下,我永远不会从值表中提取实例
AttributeId
。为了便于使用,我宁愿提前完成所有这些。
class MyContext : DbContext
{
    public DbSet<Customer_Values> Customer_Value { get; set; }
    public DbSet<Customer_Attributes> Customer_Attribute { get; set; }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Customer_Attributes>()
            .HasOne(v => v.Customer_Values)
            .WithOne(a => a.Customer_Attributes)
            .HasForeignKey(v => v.AttributeId)
            .HasConstraintName("FK_Constraint_Name_Here");
    }
}
public class Customer_Values
{
    public int CustomerId { get; set; }
    public int AttributeId { get; set; }
    public string Value { get; set; }

    public <Customer_Attributes> Customer_Attribute { get; set; }
}
public class Customer_Attributes
{
    public int AttributeId { get; set; }
    public string Value { get; set; }

    public int CustomerId { get; set; }
}