日期:2014-05-18  浏览次数:21308 次

EF实体类多表查询
使用EF实体类进行多表查询的时候是不是必须建立视图,将视图转换为实体类?有其他方法吗?

------解决方案--------------------
两个表的linq 
private DataClasses1DataContext dc;

dc = new DataClasses1DataContext();

 var heji = (from da in dc.q1
join du in dc.q2
on da.danhao equals du.danhao
where da.hetong == "XXXX"
select new { du.color1, da.danhao, da.riqi, du.zhongliang, du.beizhu }).Distinct();

这个select new 结果是只读的,
另外还有左连接外连接,所以楼主还是看下教程吧
还需注意的是,如果是关联表,例子:父子表的查询界面
dc = new DataClasses1DataContext();
var Waf_q1 = from a in dc.songhuo1
select a;
bind = new BindingSource();
bind.DataSource = Waf_q1;
dataGridView.DataSource = bind;

bind2 = new BindingSource();
bind2.DataSource = bind;
bind2.DataMember = "songhuo2";//注意:子表并不需要再写linq语句了,也可以用bind2.add等来增删了,所以linq还是很强大的


dataGridView2.DataSource = bind2;