Допустим, у меня есть три таблицы (Person_tbl, PersonHobbies_tbl и Hobbies_tbl) с отношениями между ними, как:Обратный результат partion из списка с помощью Entity Framework и ASP.NET MVC
Person_tbl [1]-------[n] PersonHobbies_tbl [n]-------[1] Hobbies_tbl
Логика заключается в том, что у конкретного человека может быть больше увлечений. Я хочу получить список хобби, которые не назначены конкретному человеку, представленному его идентификатором.
Например, если я хочу, чтобы получить список хобби, которое присваивается конкретному человеку, я могу это сделать, как:
DBEntity db = new DBEntity();
var Person = db.Person_tbl.Find(id); //id contains the ID of a person
var obj = Person.PersonHobbies_tbl;
//lets say that ViewListResult cointains only HobbyName
return obj.Select(n => new ViewListResult
{
HobbyName= n.Hobbies_tbl.name
}).ToList();
Я хочу, чтобы получить обратное этого (список с остальными хобби) эффективным способом.
Так что мой вопрос в том, как я могу решить свою проблему достаточно эффективно?
Это, кажется, лучшее решение, но ваш код не является хорошим, потому что 'Hobbies_tbl' и' PersonHobbies_tbl' - это не тот же тип. Если я смогу собрать все увлечения, связанные с одним человеком, тогда используйте это в «Исключении», это решит мою проблему. –
@ DaniFeldman Я не знал, что они разных типов. Но это необычно для вашего дизайна. Я думал, что все увлечения человека должны содержаться внутри таблицы хобби? После импорта в вашу модель они должны иметь один и тот же тип. – Hopeless
@ DaniFeldman, так что 'Person.PersonHobbies_tbl' - это не все увлечения, связанные с человеком? это запутывает здесь. Таким образом, «Лицо» имеет какое-либо навигационное свойство для своих увлечений? Я считаю, что это должно произойти, если вы импортировали свою модель правильно. – Hopeless