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已经有了数据。使用新结构创建新表,然后将所有现有数据转换为新表这很难解释,但如果可能的话,我会这么做