不是很明白,你说的N+1是什么意思?百度了一下没什么解释。
另外,你说用参数传?怎么传?我本来就是要两个联合得到一个数据集的,怎么传参数?
举个例子吧,我现在的问题是这样的。
一个方法A,获得一个学期所有教学任务的列表,这个方法A在其它地方有用,我是这样写的
TeachEasEntities db = new TeachEasEntities()
return db.任务表.Where(条件);
一个方法B,获得某个时间段的教学安排,这个方法B在其它地方也有用到,我是这样写的
TeachEasEntities db = new TeachEasEntities()
return db.教学安排表.Where(条件);
然后我开始相联合这两个方法
var query = from s in A
from r in B
where 条件
select s;
结果,在数据库端检测到1万多条查询语句。。。。。。
但实际上,如果这样写
TeachEasEntities db = new TeachEasEntities()
var query = from s in db.任务表.Where(条件)
from r in db.教学安排表.Where(条件)
where 条件
select s;
数据库端只有一条SQL语句。
我个人分析,可能是因为TeachEasEntities db = new TeachEasEntities()了之后,到函数结事,与数据库的连接是断开的,两次NEW的算两个实体集,所以没有办法连接,有没有什么办法解决这个问题?虽然我可以用后面的方法来写,但这样函数的复用性就不好了。