Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.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
Entity framework EF代码首先指定导航属性的关系表_Entity Framework_Entity Framework 4_Ef Code First - Fatal编程技术网

Entity framework EF代码首先指定导航属性的关系表

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

我是EF代码新手,正在尝试强制ICollection导航属性使用我为映射实体而手动创建的特定关系表

我被迫这样做的原因是,我的所有表上都有一个TenantId列。这有可能吗

[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;}