问题
我有两个类:
- OfficeProfile:存在于我的 EF 模型中
- BusinessUnit:来自外部来源,例如网络服务
办公室资料和业务单位之间存在多对多关系,我想在链接表 OfficeProfilesBusinessUnits
中表示这种关系。我不想以 BusinessUnits
表结束,但是它包含业务单位列表,因为这些业务单位存储在我无法控制的外部域中。
这有可能实现吗?
public class OfficeProfile
{
public OfficeProfile()
{
ContactNumbers = new HashSet<ContactNumber>();
BusinessUnits = new HashSet<BusinessUnit>();
}
public int OfficeProfileId { get; set; }
public Address Address { get; set; }
public ICollection<ContactNumber> ContactNumbers { get; private set; }
public ICollection<BusinessUnit> BusinessUnits { get; private set; }
}
public class BusinessUnit
{
public BusinessUnit(string code, string name, BusinessUnit parent)
{
Code = code;
Name = name;
Parent = parent;
}
public string Code { get; set; }
public string Name { get; set; }
public BusinessUnit Parent { get; set; }
}
我尝试过的
我试过忽略 BusinessUnit
实体,但是忽略了链接表。
我尝试在映射多对多关系时忽略 BusinessUnit 实体,但这会引发 InvalidOperationException
声明
The navigation property 'BusinessUnits' is not a declared property on type 'OfficeProfile'. Verify that it has not been explicitly excluded from the model and that it is a valid navigation property
.
最佳答案
您可以添加一个额外的实体,它只有一个 ID 和一个指向 BusinessUnit 的链接。在您的实体模型中,您将忽略 BusinessUnit 但添加链接实体,以便您获得多对多关系链接表。
关于c# - EF4 代码首先与外部实体建立多对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8309679/