Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 更新预测背后的数据?_C#_Linq_Entity Framework - Fatal编程技术网

C# 更新预测背后的数据?

C# 更新预测背后的数据?,c#,linq,entity-framework,C#,Linq,Entity Framework,我有两个实体,行,它有多个标记: 在我的UI中,我有一个列表框: 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()};

我有两个实体,
,它有多个
标记

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

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;

此列表框绑定到投影:

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;
问题:

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。。。在我做上述操作之前,我注意到复选框甚至没有选中,这有什么原因吗


非常感谢。

如果您将数据源绑定到投影,那么您将创建类似于只读(单向)数据绑定的内容—后面没有可以更新的实体。此外,某些automagic数据绑定并非如此。您正在显示有关所有标记的信息,并选择必须添加到行中的标记。这意味着您必须手动处理UI触发的事件,获取所选标记的Id,并使用它将真正的标记实体添加到行中

正如我所想,谢谢你。我问这个问题的原因是因为我是linq&EF函数的初学者,所以我不知道是否有更好的方法。