C# asp.net mvc Model里数据层的问题
publicIQueryable<Dinner>FindDinnersByText(stringq){returndb.Dinners.Where(d=>d.Title....
public IQueryable<Dinner> FindDinnersByText(string q)
{
return db.Dinners.Where(d => d.Title.Contains(q)
|| d.Description.Contains(q)
|| d.HostedBy.Contains(q));
}
①d 后面的=>是什么意思,不都是>=或者<=,请帮忙解释下没看懂。
②IQueryable这个接口来操作数据库实用吗,
还有请给点IQueryable常用的方法或者例子。 展开
{
return db.Dinners.Where(d => d.Title.Contains(q)
|| d.Description.Contains(q)
|| d.HostedBy.Contains(q));
}
①d 后面的=>是什么意思,不都是>=或者<=,请帮忙解释下没看懂。
②IQueryable这个接口来操作数据库实用吗,
还有请给点IQueryable常用的方法或者例子。 展开
2个回答
展开全部
=> 这不是大于等于的意思,是lamda表达式 升级版的匿名委托
比较强悍 “Lambda 表达式”是一个匿名函数,它可以包含表达式和语句,并且可用于创建委托或表达式目录树类型。
所有 Lambda 表达式都使用 Lambda 运算符 =>,该运算符读为“goes to”。该 Lambda 运算符的左边是输入参数(如果有),右边包含表达式或语句块。Lambda 表达式 x => x * x 读作“x goes to x times x”。可以将此表达式分配给委托类型IQueryable是个类型,操作数据库的那个linq表达式,也就是Where() 那些句子。
IQueryable接口与IEnumberable接口的区别: IEnumerable<T> 泛型类在调用自己的SKip 和 Take 等扩展方法之前数据就已经加载在本地内存里了,而IQueryable<T> 是将Skip ,take 这些方法表达式翻译成T-SQL语句之后再向SQL服务器发送命令,它并不是把所有数据都加载到内存里来才进行条件过滤。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询