更新投影背后的数据?

时间:2012-04-30 16:25:50

标签: c# linq entity-framework

我有2个实体,Line有多个Tags

enter image description here

在我的界面中,我有一个列表框:

enter image description here

此列表框绑定到投影:

var tagNames = someline.Tags.OrderBy(x=>x.Name).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()};
dgvTags.DataSource = tagsList;

问题:

我希望选中该复选框,它会自动添加标记/或从Line.Tags集合中删除未经检查的标记。这可能是一种简单的方式,还是我必须抓住点击并完成工作并刷新网格?

问题2 ......在我能做到以上之前我已经注意到复选框甚至没有检查,这是否有原因?

非常感谢提前。

1 个答案:

答案 0 :(得分:2)

如果将数据源绑定到投影,则会创建类似readonly(单向)数据绑定的东西 - 后面没有可以更新的实体。此外,这不是某些自动数据绑定的情况。您正在显示有关所有标记的信息,并选择必须将哪些标记添加到您的行中。这意味着您必须手动处理由UI触发的事件,获取所选标记的Id并使用它将真实标记实体添加到您的行。