通过sql覆盖绑定到EF表时,向绑定源添加其他列

时间:2017-07-17 21:25:08

标签: c# vb.net winforms entity-framework

您好我有一个绑定为

的BindingSource
sql = "select a.*, b.col3 from table1 a inner join table2 b on a.col2 = b.col1";
context.Table1.SqlQuery(sql).ToList();
BindingSource1.DataSource = context.Table1.Local.ToBindingList();

但是当我访问BindingSource1时,它只有table1中的列。我想知道是否有一种简单的方法可以从table2中添加col3,所以我不需要在该表单上重写很多逻辑。我试图逃避使用linq到ef,但我没有获得与使用sql覆盖相同的结果集(现实生活中的查询非常复杂),并且不想每次我需要时都引入查询覆盖像这样的东西。

1 个答案:

答案 0 :(得分:0)

由于我不知道你的BindingSource1是如何使用的,所以我只能评论EF部分。您只看到Table1中的部分的原因是您从该表中选择:.ace-mono-industrial .ace_string { background-color: transparent !important; } 。这只会尝试将您的查询与Table1类匹配,而col3不是它的一部分。

如果真实生活查询很复杂,最好创建一个数据库视图并将其挂钩到EF并从中进行选择。或者您可以执行非实体选择并将其映射到类:context.Table1.SqlQuery()