2012-04-20 10 views
0

私はラインテーブルとタグテーブルを持っています。各行は、tagsテーブルの複数のタグを持つことができます。すべてのタグを含むチェックリストを作成しようとしていて、その行にそのタグがあるかどうかをチェックするチェックボックスがあります。Entity Framework ProjectionクラッシュVS

Iveは2列のデータグリッドビューを設定します。私のエンティティ図は以下の通りです

-> line comes into constructor 
var tagsList = from t in rs.Tags select new { Name = t.Name, IsTagged = line.Tags.Where(x => x.Name == t.Name).Any() }; 
dgvTags.DataSource = tagsList; 

enter image description here

UPDATE:

名前と、このための突起を使用しようとイム

IsTagged

に結合された別のcheckboxcellに結合した1つ

私はすべてをやり直しました。2005年から2008r2にバックDBをアップグレードしましたが、今は動作するようですが、次のエラーが出ます...クラッシュしませんでしたが、データグリッドに項目が表示されません。

enter image description here

+0

だったのですか? – Eranga

+0

"クラッシュVS" < - 何がエラーですか? –

+0

申し訳ありませんが、エラーは表示されず、アプリの実行を停止します。一度それは、アプリケーションが応答を停止したと言った(VS) – sprocket12

答えて

0

私はこの問題は、あなたのLINQツーエンティティクエリでラインパラメータのコレクションを使用してによるものだと思います。

私はこのようなプリミティブ型を使用するクエリを書き換えしようとするだろう。問題は

var tagNames = line.Tags.Select(x => x.Name).ToList(); 
var tagsList = from t in rs.Tags 
       join n in tagNames on t.Name equals n into tags 
       select new 
       { 
       Name = t.Name, 
       IsTagged = tags.Any() 
       };