//LINQ预编译 语句
第一种是只有一个结果集,
Func<>的第一个参数是DataContent 就是你的数据实体,最后一个是返回值类型我在后面加了.FirstOrDefault()这样只会返回一个结果,userdatas是我自定义的实体类如果要返回多个结果集,请往下看
class userdatas {
public userinfo _userinfo;
public friends _friends;
}
</pre><pre name="code" class="csharp"> //LINQ预编译 语句
private static readonly Func<cellsTimeDataContext, int, userdatas> searchByID =
CompiledQuery.Compile((cellsTimeDataContext DataContext, int ID) => (
from UserInfo in DataContext.userinfo
where UserInfo.userID == ID
join Friends in DataContext.friends on ID equals Friends.userID
select new userdatas { _userinfo = UserInfo, _friends = Friends }
).FirstOrDefault());
第二种是可能返回多个结果集 他取消了.FirstOrDefault()
注意下面的IQueryable<myClass> 这样的话他是返回一个数据集
private static readonly Func<cellsTimeDataContext, int, IQueryable<myClass>> searchByNameQuery =
CompiledQuery.Compile((cellsTimeDataContext _dataContext, int ID) => (
from _userinfo in _dataContext.userinfo
where _userinfo.userID == ID
join _friends in _dataContext.friends on ID equals _friends.userID
select new myClass { s1 = _userinfo, s2 = _friends }
));