1 string id = "1"; 2 var Query = from c in db.AdminInfo where SqlFunctions.StringConvert((double)c.Id) == id select c; 3 return Query.ToList();
报错,提示
LINQ to Entities 不识别方法“System.String StringConvert(System.Nullable`1[System.Double])”,因此该方法无法转换为存储表达式。
这是为什么呢? 求博友指点一下。
EF用的是6.00,数据库是2008R2
命名空间:
1 using System; 2 using System.Collections.Generic; 3 using System.Data.Entity; 4 using System.Linq; 5 using System.Linq.Expressions; 6 using System.Text; 7 using SnsDB; 8 using EntityFramework.Extensions; 9 using EntityFramework.Reflection; 10 using System.Data.SqlClient; 11 using System.Data.Objects.SqlClient; 12 using System.Data.Objects;
想不通为什么会有问题。
当EF使用的是6.0版本的时候,添加命名空间
using System.Data.Entity.SqlServer;
public ActionResult Index()
{
int Count = 0;
using (Models.SnsTestProjectDB2 db = new Models.SnsTestProjectDB2())
{
string str = "1";
var aaa = from a in db.AdminInfo where SqlFunctions.StringConvert((double?)a.Id, 1) == str select a;
var Query = aaa.ToList();
Count = Query.Count();
}
ViewBag.Count = Count;
return View();
}
OK,正常运行。
本群提供ASP.NET MVC,EF,LINQ,WEB API技术支持,不在乎人多,在乎人精。
ASP.NET MVC群 171560784
诚邀各路高手、初学者加入。
c.Id 是啥类型?
就用这个方法,直接.tostring试试吧
当EF使用的是6.0版本的时候,添加命名空间
using System.Data.Entity.SqlServer;
public ActionResult Index()
{
int Count = 0;
using (Models.SnsTestProjectDB2 db = new Models.SnsTestProjectDB2())
{
string str = "1";
var aaa = from a in db.AdminInfo where SqlFunctions.StringConvert((double?)a.Id, 1) == str select a;
var Query = aaa.ToList();
Count = Query.Count();
}
ViewBag.Count = Count;
return View();
}
OK,正常运行。
本群提供ASP.NET MVC,EF,LINQ,WEB API技术支持,不在乎人多,在乎人精。
ASP.NET MVC群 171560784
诚邀各路高手、初学者加入。
还有一种方法是
int Count = 0;
using (Models.SnsTestProjectDB2 db = new Models.SnsTestProjectDB2())
{
string str = "1";
var aaa = from a in db.AdminInfo where SqlFunctions.StringConvert((double?)a.Id).Trim() == str select a;
var Query = aaa.ToList();
Count = Query.Count();
}
ViewBag.Count = Count;
return View();
参考文章:http://blog.csdn.net/xiaojia_boke/article/details/8976760#reply