次のような関係を持つ 3 つのテーブル ( Person_tbl、PersonHobbies_tbl、およびHobbies_tbl ) があるとします。
Person_tbl [1]-------[n] PersonHobbies_tbl [n]-------[1] Hobbies_tbl
ロジックは、特定の人がより多くの趣味を持つことができるということです。ID で表される特定の人に割り当てられていない趣味のリストを取得したいと考えています。
たとえば、特定の人に割り当てられている趣味のリストを取得したい場合は、次のように実行できます。
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();
これの反対(残りの趣味のリスト)を効率的に取得したい。
だから私の質問は、どうすれば十分に効率的な方法で問題を解決できるでしょうか?