私は現在、3つのテーブルがあります。2つの結合が1つの選択を生成する方法
News
ID | Title
Tag
ID | Name
TaggedContent
ContentID | TagID
をそして私は2つのコンテキストがオブジェクトを持っている:NewsEntities
とTagsEntities
は私がニュースで使用されるすべてのタグを選択したい、自分のアプリケーションで私が持っている:
static void Main(string[] args)
{
IEnumerable<dynamic> something = null;
IEnumerable<News.Data.News> news = null;
IEnumerable<Tags.Data.Tag> tags = null;
IEnumerable<TaggedContent> tagged = null;
using (var db = new NewsEntities())
{
news = db.News.ToList(); // 1 select
}
using (var db = new TagsEntities())
{
something = news.Join(db.TaggedContents.ToList(),
n => n.ID,
tc => tc.ContentID,
(n, tc) => new { tc.TagID }); // 1 select
something = something.Join(db.Tags.ToList(),
tid => tid.TagID,
t => t.ID,
(tid, t) => t); // 1 select
}
var result = something;
}
私は現在を3つ選択しています。どうすれば2に減らすことができますか?または可能であれば、エンティティをマージせずに1に減らしたいと考えています。
DataLoadOptionsは、Linq-To-Sqlではないエンティティフレームワークの一部です。 –