我查了三种方法
1.Inclue(string path) 这个好像要数据库建立外键才行,
2.EF的Join方法 这个好像只能Join进去一个表而且最后还要构建一个新对象
3.from a in XX join XX, where XX 这种方法可以join多张表,好像不能动态的Where,比如如果输入了姓名就 &a.name=XX 之类的很多条件,
难道是还要写SQL语句的节奏吗...
具体问题具体解决。没有具体问题只好告诉你,EF很健康,身体棒棒的,你就不用为EF担心了。
...还需要怎么具体啊,我现在就是需要四表联查,然后还有动态条件,然后应该怎么做呢,用什么方法
@慕容枫:
var query = from c in TableA
join d in TableB on c.ID equals d.id
.....
你想怎样?
不举例谁知道你碰到啥问题,你举个具体的问题出来,大家帮你解决了,其他你就可以举一反三了。
@爱编程的大叔: 对,这个方法我也知道啊,但是我现在就是有多个条件啊,比如选择分类,然后根据分类查询,不选就全查,但是这个语法好像没办法拼接动态的where啊
@慕容枫: 动态查询是可以的
1、PredicateBuilder,或者你Google Linqkit
2、Dynamic LINQ。
这些都是有人探索过的课题。
System.Data.Linq.Dynamic这个命名空间里面有动态查询的东西。
用法就是好像这样的
var query= list.where("Name='张三'")
还有啊,动态查询是动态查询,你不要和多表联查混起来。
问题要分开解决,合在一起就混了。
@爱编程的大叔:
用where方法的话,要放在最后面吧..可那些字段DTOMember这里面是没有的,我用PredicateBuilder,他这个是query=quert.And(XXX)的,但是像from a where XX这种不能拼接出一个动态的东西吗,
我刚才搜索Dynamic LINQ看到了一个方法
好像也是可行,不过看起来还是有些繁琐...
@慕容枫: 我真是没话可说了。
你就不能干脆点举个例子,你想怎样,具体的例子。
你能说的出来的要求,自然可以达到。
@爱编程的大叔: 我上面都说了,就是一个多个条件的会员的查询,然后要显示会员的几个外建属性,
@爱编程的大叔: 解决了,分成两部操作就行了,不能写在一起...不过如果from a 这种语法的where要是能像where方法的参数一样是动态的就好了