Код EF4 сначала много ко многим, отношение к внешней сущности - PullRequest
3 голосов
/ 29 ноября 2011

Задача

У меня есть два класса:

  • 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 с указанием

Навигационное свойство BusinessUnits не объявлено введите «OfficeProfile». Убедитесь, что он не был явно исключен от модели и что это допустимое свойство навигации

.

1 Ответ

0 голосов
/ 29 ноября 2011

Вы можете добавить дополнительный объект, который будет иметь только идентификатор и ссылку на BusinessUnit. В вашей модели сущности вы затем проигнорируете BusinessUnit, но добавите сущность ссылки, чтобы получить таблицу связей «многие ко многим».

...