C# 具有连接的linq到实体框架
我的DB 2表中有:C# 具有连接的linq到实体框架,c#,.net,wpf,entity-framework,C#,.net,Wpf,Entity Framework,我的DB 2表中有: 文档(文档Id、文档名称) 人员文档(人员ID、文档ID文档完成) 我使用实体框架和,我想用数据document\u Name和document\u Done填充DataGrid 我尝试了以下方法,但没有结果: vagEntities projectE = new vagEntities(); var doc = from c in projectE.Person_Documents join
document\u Name
和document\u Done
填充DataGrid
我尝试了以下方法,但没有结果:
vagEntities projectE = new vagEntities();
var doc = from c in projectE.Person_Documents
join cw in projectE.Documents on c.Document_Id equals cw.Document_Id
where c.Person_Id == 150
select c;
DocGrid.ItemsSource = doc;
请问,我错在哪里?
我写了这个
<DataGridTextColumn Binding="{Binding Path=Document_Name}" MinWidth="100" Header="document" />
<DataGridCheckBoxColumn Binding="{Binding Path=Document_done}" Header="Do" />
我认为您希望将结果投影到以下匿名类型: 更新-项目到混凝土类
public class NameAndDone {
public string document_Name { get; set; }
public bool document_Done { get; set; }
}
var doc = from c in projectE.Person_Documents
join cw in projectE.Documents on c.Document_Id equals cw.Document_Id
where c.Person_Id == 150
select new NameAndDone {
cw.document_Name,
c.document_Done
};
我会这样做
vagEntities projectE = new vagEntities();
var doc = from c in projectE.Person_Documents
from cw in projectE.Documents where c.Person_Id == 150 && c.Documents.Contains(cw)
select c;
DocGrid.ItemsSource = doc;
两个答案无效,此响应是一个错误:双向或单向ToSource绑定无法在类型为“f_uAnonymousType1
2[System.String,System.Nullable
1[System.Boolean]]的只读属性“Document_done”上工作。可能有人知道如何修复它?@user1095549-绑定路径区分大小写。在我的示例中,您需要将路径更改为path=document\u Name
和path=document\u done
问题仍然存在,我快疯了,也许您可以修复上面的代码?@user1095549-尝试投影到一个具体的类。我更新了答案