2012-04-20 96 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() 
       };