2012-04-20 94 views
0

我有一個線表和一個標籤表。每行可能有多個標籤表中的標籤。我試圖建立一個清單,所有的標籤,並有一個複選框,顯示該行是否有該標籤,如果它檢查。實體框架投影崩潰VS

我設置了2列的datagrid視圖。一個必然的名稱和必然IsTagged

另一個checkboxcell

我試着去使用此投影:

-> 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:

我重新做了所有的事情,從2005年將後臺數據庫升級到2008r2,現在它似乎能夠正常工作,但卻出現以下錯誤... h不會崩潰,但在數據網格中不顯示任何項目。

enter image description here

+0

分別是什麼問題? – Eranga 2012-04-20 14:41:42

+0

「崩潰VS」< - 錯誤是什麼? – 2012-04-20 14:59:13

+0

抱歉沒有錯誤顯示,它只停止運行應用程序。一旦它說應用程序停止響應(VS) – sprocket12 2012-04-20 15:06:59

回答

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() 
       };