Entity framework EF代码首先指定导航属性的关系表
我是EF代码新手,正在尝试强制ICollection导航属性使用我为映射实体而手动创建的特定关系表 我被迫这样做的原因是,我的所有表上都有一个TenantId列。这有可能吗Entity framework EF代码首先指定导航属性的关系表,entity-framework,entity-framework-4,ef-code-first,Entity Framework,Entity Framework 4,Ef Code First,我是EF代码新手,正在尝试强制ICollection导航属性使用我为映射实体而手动创建的特定关系表 我被迫这样做的原因是,我的所有表上都有一个TenantId列。这有可能吗 [Table("Tenants")] public class Tenant { [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int Id { get; set; } // This should use Con
[Table("Tenants")]
public class Tenant
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
// This should use ContactAddressesForTenants table
public virtual ICollection<Address> ContactAddresses {get; set;}
}
[Table("BusinessProfiles")]
public class BusinessProfile
{
[Key, ForeignKey("Tenant")]
public int TenantId { get; set; }
public virtual Tenant Tenant { get; set; }
// This should use the AddressesForBusinessProfiles table
public virtual ICollection<Address> ProfileAddresses { get; set; }
}
[Table("Addresses")]
public class Address
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
[ForeignKey("Tenant")]
public int TenantId { get; set; }
}
[Table("ContactAddressesForTenants")]
public class ContactAddressForTenant
{
[ForeignKey("Tenant")]
public int TenantId { get; set; }
[ForeignKey("Address")]
public int AddressId { get; set; }
public virtual Tenant Tenant { get; set; }
public virtual Address Address {get; set;}
}
[Table("AddressesForBusinessProfiles")]
public class AddressForBusinessProfile
{
[ForeignKey("BusinessProfile")]
public int TenantId { get; set; }
[ForeignKey("Address")]
public int AddressId { get; set; }
public virtual BusinessProfile BusinessProfile { get; set; }
public virtual Address Address { get; set; }
}
[表(“租户”)]
公屋租户
{
[Key,DatabaseGenerated(DatabaseGeneratedOption.Identity)]
公共int Id{get;set;}
//这应该使用ContactAddressForTenants表
公共虚拟ICollection联系人地址{get;set;}
}
[表(“业务概况”)]
公共类业务简介
{
[钥匙,外国钥匙(“承租人”)]
public int TenantId{get;set;}
公共虚拟租户{get;set;}
//这应该使用AddresssforBusinessProfiles表
公共虚拟ICollection配置文件地址{get;set;}
}
[表(“地址”)]
公共课堂演讲
{
[Key,DatabaseGenerated(DatabaseGeneratedOption.Identity)]
公共int Id{get;set;}
[外国钥匙(“承租人”)]
public int TenantId{get;set;}
}
[表(“联系人地址代理”)]
公共类ContactAddressForTenant
{
[外国钥匙(“承租人”)]
public int TenantId{get;set;}
[外键(“地址”)]
public int AddressId{get;set;}
公共虚拟租户{get;set;}
公共虚拟地址{get;set;}
}
[表(“AddressForBusinessProfiles”)]
公共类AddressForBusinessProfile
{
[ForeignKey(“业务简介”)]
public int TenantId{get;set;}
[外键(“地址”)]
public int AddressId{get;set;}
公共虚拟BusinessProfile BusinessProfile{get;set;}
公共虚拟地址{get;set;}
}
如果我理解正确的话。
您可以尝试在模型中更改此选项
其所在地:
// This should use ContactAddressesForTenants table
public virtual ICollection<Address> ContactAddresses {get; set;}
// This should use the AddressesForBusinessProfiles table
public virtual ICollection<Address> ProfileAddresses { get; set; }
//这应该使用ContactAddressForTenants表
公共虚拟ICollection联系人地址{get;set;}
//这应该使用AddresssforBusinessProfiles表
公共虚拟ICollection配置文件地址{get;set;}
改为:
public virtual ICollection<ContactAddressForTenant> ContactAddresses {get; set;}
public virtual ICollection<AddressForBusinessProfile> ProfileAddresses { get; set; }
公共虚拟ICollection联系人地址{get;set;}
公共虚拟ICollection配置文件地址{get;set;}