Как отобразить значения поиска «многие ко многим» без отдельного объекта? - PullRequest
0 голосов
/ 05 октября 2011

Допустим, у меня есть сущность Organization с коллекцией стран.На самом деле меня не волнует ни что иное, как отображение их с данными организации, потенциально для фильтрации, вот и все.В моей объектной модели я бы предпочел иметь простые string для представления стран:

class Organization
{
    ...
    public virtual IList<string> Countries { get; set; }
    ...
}

Это довольно легко отобразить как один-ко-многим , используя набор компонентов, которыесодержать только элемент названия страны.В результате получится таблица типа:

OrganizationCountries
-----------------------
Organization_id int
CountryName string

Но чтобы избежать массовой избыточности и иметь возможность легко обновлять названия стран, я хотел бы хранить названия стран в отдельной таблице (например, в таблице поиска), чтобы вбаза данных у меня есть:

OrganizationCountries
-----------------------
Organization_id int
Country_id int

Country
-----------------------
Country_id int
CountryName string

Я пытался отобразить это как множество-ко-многим набор компонентов, но это, кажется, игнорируется, и результат такой же, как с отображение один-ко-многим , без поиска.

Возможно ли это отображение без определения отдельной сущности для стран?

1 Ответ

1 голос
/ 05 октября 2011

Если у вас есть собственная таблица и идентификатор страны, она может использоваться несколькими организациями. Определение компонента заключается в том, что его время жизни зависит от объекта-владельца. Это неверно в вашей измененной модели (вы можете удалить Организацию, не удаляя связанные Страны), поэтому Страна больше не является компонентом.

Либо используйте один-ко-многим с компонентами, либо многие-ко-многим с объектами.

...