EntityFrameworkを使用していくつかのテーブルがあります
UserTable
- ユーザーID
BookTable
- BookID
- BookName
OwnTable
- ユーザーID
- BookID
今私は使用することができます:
uw.ownRepository.GetData().where(v=>v.userid=1).select(o=>o.Book)
私が所有するすべての本を取得するために。しかし、私がすべての本を取得したい場合は、ユーザーがそれを所有しているかどうかに注意してください
私はいくつかの解決策を持っています
1.1。
すべての本を選択してから、1冊ごとに1回選択します
愚かな解決策== "
2.2。
var s = from book in uw.bookRepository.GetData()
join own in uw.ownRepository.GetData() on book.Id equals like.Id into ps
from o in ps.DefaultIfEmpty()
select new {bookName =book.name,IsOwn =o==null};
いくつかの擬似コード。
私はそれを試し、うまくいきました。
しかし、私は別のより良い解決策があるかどうか疑問に思っています
のような強いタイプを選択したい場合
select new Book{bookName =book.name,bookType=book.bookType, IsOwn =o==null};
この場合、bookTableに多くのフィールドがある場合は、すべてのフィールドを割り当てる必要があります。
誰かが何か考えを持っていますか?