2012-01-20 12 views
0

問題があります。LINQエンティティはMANYからMANYの関係を持つデータベースビューです

SELECT TOP (100) PERCENT dbo.PostAdditional.Description, dbo.PostAdditional.Summary, dbo.PostAdditional.Title, dbo.Post.PostID, dbo.Post.Type, dbo.Tags.TagID, dbo.Tags.TagName, 
FROM dbo.Post 
INNER JOIN dbo.PostAdditional ON dbo.Post.PostID = dbo.PostAdditional.PostID 
INNER JOIN dbo.PostWithTags ON dbo.Post.EventID = dbo.PostWithTags.PostID 
INNER JOIN dbo.Tags ON dbo.PostWithTags.TagID = dbo.Tags.TagID 
ORDER BY dbo.Post.StartDate, dbo.Post.PubDate 

LINQ to SQLを使用して作業したいと思っています。私は通常、このビューをDBMLデザイナに置くと、エンティティを作成します。しかし、エンティティは、TagNameを文字列として扱います。タグ名の配列(またはそれ以上のリスト<>)にしたいと思います。私がデータベースからデータを取るとき、私はevry単一タグのPostエンティティのコピーを1つ取得しますが、すべてのタグが関連付けられた1つのPostエンティティを取得したいと思います。

答えて

1

多分これが役立ちます。 私はこれが

INNER JOIN dbo.PostWithTags ON dbo.Post.EventID = dbo.PostWithTags.PostID 

から

INNER JOIN dbo.PostWithTags ON dbo.Post.PostID = dbo.PostWithTags.PostID 

に参加変わり、私はあなたを理解している場合、右、これは何をしたいのですか? DBはdatabasecontext

+0

賛否ある

var test= ( from p in db.Post orderby p.StartDate,p.PubDate select new { p.PostID, p.Type, Tags= ( from pa in db.PostAdditional join pwt in db.PostWithTags on pa.PostID equals pwt.PostID join t in db.Tags on pwt.TagID equals t.TagID where p.PostID == pa.PostID select new { pa.Description, pa.Summary, pa.Title, t.TagID, t.TagName } ) } ).ToList(); 

、私はあなたがLINQクエリとして書いたものをしたいが、SQLビューとして、それからLINQのエンティティを作ります。 – PavelKumpan

関連する問題