C# 首先使用不同的列名配置一对一映射EF代码。Fluent API

C# 首先使用不同的列名配置一对一映射EF代码。Fluent API,c#,entity-framework,C#,Entity Framework,我有两个实体: public partial class Web_Vendor { public string VendorID { get; set; } public virtual Deal_Brands DealBrand { get; set; } } public partial class Deal_Brands { public string Brand { get; set; } public virtual Web_Ve

我有两个实体:

public partial class Web_Vendor
{  
    public string VendorID { get; set; }
    public virtual Deal_Brands DealBrand { get; set; }
}
 public partial class Deal_Brands
 {    
    public string Brand { get; set; }    
    public virtual Web_Vendor WebVendor { get; set; }    
 }
我需要使用fluent API使用字段
VendorID Brand
配置一对一映射

modelBuilder.Entity<Web_Vendor>().HasOptional(x=>x.DealBrand).WithRequired(x=>x.WebVendor).
                Map(x=>x.MapKey(""))
modelBuilder.Entity().has可选(x=>x.DealBrand)。with必需(x=>x.WebVendor)。
映射(x=>x.MapKey(“”)

有人能帮我继续这一行吗

看看你们的课程,我发现
Web\u供应商
Deal\u品牌
之间的关系是“一对零一”(1-0.1)而不是“一对一”。这意味着
Deal\u Brands
主键必须是
Web\u供应商
主键。课程应该是这样的:

public partial class Web_Vendor
{  
    public string VendorID { get; set; }
    public virtual Deal_Brands DealBrand { get; set; }
}
 public partial class Deal_Brands
 {    
    public string VendorID { get; set; }   
    public string Brand { get; set; }
    public virtual Web_Vendor WebVendor { get; set; }    
 }
映射:

modelBuilder.Entity<Web_Vendor>()
    .HasKey(i => i.VendorID);

modelBuilder.Entity<Deal_Brands>()
    .HasKey(i => i.VendorID);

modelBuilder.Entity<Web_Vendor>()
     .HasOptional(x=>x.DealBrand)
     .WithRequired(x=>x.WebVendor);
modelBuilder.Entity()
.HasKey(i=>i.VendorID);
modelBuilder.Entity()
.HasKey(i=>i.VendorID);
modelBuilder.Entity()
.has可选(x=>x.DealBrand)
.WithRequired(x=>x.WebVendor);

希望有帮助

这真是个好主意,但我不能改变基数。DB已经有了数据。使用新结构创建新表,然后将所有现有数据转换为新表这很难解释,但如果可能的话,我会这么做