3

问题

我有两个课程:

  • OfficeProfile:存在于我的 EF 模型中
  • BusinessUnit:来自外部来源,例如 Web 服务

办公室资料和业务单位之间存在多对多关系,我想在链接表中表示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说明

导航属性“BusinessUnits”不是“OfficeProfile”类型的声明属性。验证它没有被明确地从模型中排除,并且它是一个有效的导航属性

.

4

1 回答 1

0

您可以添加一个额外的实体,它只有一个 ID 和一个到 BusinessUnit 的链接。然后,在您的实体模型中,您将忽略 BusinessUnit,但添加链接实体,以便获得多对多关系链接表。

于 2011-11-29T11:23:41.513 回答