2016-10-13 6 views
1

У меня возникла проблема при создании нового приложения. Приложение - это новые сотрудники, которые вступают в определенную дату. Поскольку они нуждаются в каком-то оборудовании (например, ноутбуках, клавиатурах и т. Д.), Мы хотим предоставить обзор всем новым сотрудникам, которые появятся в ближайшие несколько дней.Сделать EF использовать таблицу m: n с дополнительным свойством

Итак, есть следующие модели:

запись:

public class Entry{ 
public IEnumerable<Hardware> Hardware {get; set;} 
... 
} 

Оборудование:

public class Hardware{ 
    public string Name {get; set;} 
    public OrderStatus Status {get; set} 
} 

OrderStatus:

public enum OrderStatus{ 
    Nothing, 
    Ordered, 
    Arrived, 
    Ready 
} 

Сначала это казалось хорошо, потому что для каждого запись Я хотел создать новый набор аппаратных данных (один для многих). Теперь я решил сохранить список аппаратных средств и просто ссылаюсь на Hardware to Entry (многие на многие). Проблема в том, что OrderStatus связан с аппаратным обеспечением, поэтому, когда одно оборудование ссылается на многих сотрудников, а Orderstatus получает изменения, оно будет изменено на все записи.

Я считаю, что правильным решением будет использование третьей таблицы (Entry_Id, Hardware_Id, OrderStatus). С помощью свободного API можно сопоставить отношения в новой (третьей) таблице, но невозможно добавить к нему новое свойство (OrderStatus). Возможно ли это?

+0

Я думаю, вы должны создать третью сущность ** EntryHardwareStatus ** (имя, вероятно, было бы лучше, но на данный момент это не имеет значения), который связан как с Entry, так и с оборудованием, а также содержит OrderStatus. Просто сопоставление отношений «m: n» с текущим api недостаточно. –

+0

Итак, нет другого способа, кроме создания новой модели? Не нужно ли создавать новые свойства в Context + new Repository для этой модели? Разве нет способа решить это с помощью flu-api? – C4p741nZ

ответ

2

В соответствии с этим answer:

Это не представляется возможным создать много-ко-многим с настроенной присоединиться к столу. В отношениях «многие ко многим» EF управляет таблицей соединения внутри и снаружи. Это таблица без класса Entity в вашей модели. Для работы с такой таблицей объединения с дополнительными свойствами вы должны создать фактически два один-ко-многие отношений

Пожалуйста, обратитесь к связанному ответу для более подробной информации.

+0

Хороший улов, но тогда этот вопрос - обман :) –

+0

Я сегодня не знаком с флагами: o –

 Смежные вопросы

  • Нет связанных вопросов^_^