ggc*_*des 2 sql linq entity-framework visual-studio-2010
我正在尝试从SQL数据库中获取第一个用户,该用户Entity model正在与已经存在的数据库进行通信,该数据库具有我正在寻找的用户的用户ID.出现此错误和第二个错误.
无法将lambda表达式转换为委托类型,System.Func<iomnientitylibrary.user,bool>因为块中的某些返回类型不能隐式转换为委托返回类型.
无法隐式转换int为bool.
public user GetUser(int userID)
{
using (var context = new iomniEntities())
{
user u = context.users.FirstOrDefault(user => user.userID);
return u;
}
}
Run Code Online (Sandbox Code Playgroud)
context.users.ToList()工作正常,但我不想那么低效.
使用表达式时:user u = context.users.FirstOrDefault(user => user.userID);
返回类型是userID(这由Lambda表达式的第二部分确定)而不是类型:'user',语句根据声明期望:user u
因此,如果要返回user 其userID为"userID" 的单个,请使用:
user u = context.users.FirstOrDefault(user => user.userID==userID);
Run Code Online (Sandbox Code Playgroud)
或者您也可以使用:
user u = context.users
.Where(user => user.UserId==UserID)
.Select(user => user).Single();
Run Code Online (Sandbox Code Playgroud)
还要确保您有Using语句: using System.Linq;
我认为你的语法有点不对劲。尝试:
public user GetUser(int intUserID)
{
using (var context = new iomniEntities())
{
user u = context.users.Where(u => u.userID == intUserID).FirstOrDefault();
return u;
}
}
Run Code Online (Sandbox Code Playgroud)
或者要保留您的版本,只需对其进行修改:
public user GetUser(int intUserID)
{
using (var context = new iomniEntities())
{
user u = context.users.FirstOrDefault(user => user.userID == intUserID);
return u;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24676 次 |
| 最近记录: |