Entity framework Linq到实体错误无法创建常量值
我有一个传递字符串的函数,然后使用linq to entity检查我传递的字符串值是否已经存在于数据库中。为此,我编写了这个函数Entity framework Linq到实体错误无法创建常量值,entity-framework,Entity Framework,我有一个传递字符串的函数,然后使用linq to entity检查我传递的字符串值是否已经存在于数据库中。为此,我编写了这个函数 public static bool UserExistChk(String StrUserId) { using (SBVEntities dbcontx = new SBVEntities()) { return dbcontx.Users.Contains(dbcontx.Us
public static bool UserExistChk(String StrUserId) {
using (SBVEntities dbcontx = new SBVEntities())
{
return dbcontx.Users.Contains(dbcontx.Users.FirstOrDefault(e => e.UserID == StrUserId));
}
}
但我得到一个错误——无法创建“MySBVApp.Models.User”类型的常量值。在此上下文中仅支持基本类型(“如Int32、String和Guid”)
请帮助我了解实体框架和linq。应该是这样的
using (SBVEntities dbcontx = new SBVEntities())
{
return (dbcontx.Users
.FirstOrDefault(e => e.UserID == StrUserId) != null
? true : false);
}
您可以使用:
public static bool UserExistChk(String StrUserId)
{
using (SBVEntities dbcontx = new SBVEntities())
{
var query = from u in dbcontx.Users
where u.UserId.Contains(strUserId)
select u;
}
Return query.Count > 0
}
您可以使用
Any
扩展方法:
public static bool UserExistChk(String StrUserId)
{
using ( SBVEntities db = new SBVEntities() )
{
return db.Users.Any( o => o.UserID == StrUserId );
}
}
感谢spajce,但它不会返回bool值,我必须检查null,然后相应地返回bool值。非常感谢spajce,但我正在寻找类似包含该bool值的内容。(简而言之,我试图避免你编辑的这段额外代码。)不管怎样,它工作了,解决了我的问题,再次感谢。是的,这就是我想要的。。非常感谢Nicholas Butler.@Yagnesh.Dixit不客气:)这里有一些示例可能会帮助您实现LINQ到对象和LINQ到实体-谷歌“101 LINQ示例”