当前位置: 代码迷 >> ASP.NET >> 小弟请问关于LINQ to Entities 的有关问题
  详细解决方案

小弟请问关于LINQ to Entities 的有关问题

热度:7892   发布时间:2013-02-25 00:00:00.0
小弟请教关于LINQ to Entities 的问题
C# code
 public User SelectByName(string name)        {            using (CleverTourEntities context = new CleverTourEntities())            {                var user = from u in context.User                            where u.Name == name                            select u;                return user;//在这会报错,改为return (User)user;就正常了            }        }        

小弟没有系统学过LINQ。

上面代码会有“无法将类型“System.Linq.IQueryable<Model.User>”隐式转换为“Model.User”。存在一个显式转换(是否缺少强制转换?)”
请问user是什么类型的对象,他不应该就是一个User类型的对象吗?为什么还要转换呢,哪位大哥给解释下,
改为return (User)user;进行强制类型转换是不是最优方法?  

还有,这段代码出现在DAL层中应该没有错吧?我用实体数据模型和ADO.NET DbContext Generator生成POCO对象作为Model层。

------解决方案--------------------------------------------------------
IQueryable<Model.User>是User类型的可查询集合,注意一定是集合,你向User类型转换就是从集合类型向单个类型转换,所以会出现转换错误。
------解决方案--------------------------------------------------------
C# code
 return user;改为            if (user.Count() > 0)            {                return user.FirstOrDefault();            }
------解决方案--------------------------------------------------------
public User SelectByName(string name)
{
using (CleverTourEntities context = new CleverTourEntities())
{
return context.User.FirstOrDefault(u=>u.Name == name);
}
}

------解决方案--------------------------------------------------------
顶楼上的,lambda表达式,正解