ADO.NET Entity Framework Ассоциация сущностей по диапазону значений - PullRequest
1 голос
/ 13 ноября 2009

У меня есть две EF-сущности. У одного есть свойство под названием HouseNumber. У другого есть два свойства: одно называется StartHouseNumber, а другое - EndHouseNumber.

Я хочу создать связь между многими элементами на основе того, находится ли HouseNumber между StartHouseNumber и EndHouseNumber. Тем не менее, я могу только получить оператор равенства в GUI.

Есть ли способ пропустить эту ассоциацию по диапазону?

Ответы [ 3 ]

1 голос
/ 13 ноября 2009

Насколько я знаю, вы не можете сделать это с ассоциацией, но вы можете сделать это с помощью запроса.

1 голос
/ 04 декабря 2009

Теоретически вы можете сделать это, см. этот пост о создании Ассоциации, опирающейся на представление.

Но, как говорили другие, это, вероятно, не очень хорошая идея.

Alex

1 голос
/ 13 ноября 2009

Итак, после гораздо большего прочтения этой темы, ответ заключается в том, что вы не можете этого сделать, но также и нежелательно.

Ассоциации в структуре сущностей должны быть доступны для чтения и записи. Если я создаю описанную мной связь, что произойдет, если я добавлю одну из сущностей в коллекцию ассоциаций другой сущности? Какое значение выберет HouseNumber, чтобы он попадал между значениями Start и End?

Правильный способ сделать это - написать вспомогательную функцию, которая принимает аргумент для HouseNumber, и поместить его в частично кодированный вручную класс второй сущности. Вы также можете написать свойство только для чтения для поиска или метод получения. В качестве альтернативы вы можете написать хранимую процедуру в вашей базе данных, которая может сделать это, и импортировать ее в объект.

...