如何解决linq to entities 不识别方法"system.guid parse

 我来答
农村哪些事
推荐于2016-05-12 · TA获得超过1771个赞
知道小有建树答主
回答量:1240
采纳率:52%
帮助的人:211万
展开全部
在做批量删除时,需把一串id值所对应的数据删除,调试出现问题:
Linq语句中如果使用ToString()进行类型转换,编译时不会报错,但执行时会出现如下错误:
“LINQ to Entities 不识别方法"System.String ToString()",因此该方法无法转换为存储表达式。”
原因是Linq不支持ToString()函数。
可用下述方法进行转换解决:
string source = "1,2,3,4,5";
List<int> result = new List<string>(source.Split(',')).ConvertAll(i => int.Parse(i));
注: 需引用下列命名空间
using System.Collections.Generic;
using System.Linq;
解决方案:
//获取市级地区
public JsonResult GetCity(string id)
{
var city = from c in db.AreaDivide where c.ParentID == int.Parse(id) select new { text = c.AreaName, value = c.ID };
return Json(city.ToList(), JsonRequestBehavior.AllowGet);
}
以上代码也会出现如下错误:
“LINQ to Entities 不识别方法"System.String ToString()",因此该方法无法转换为存储表达式。”

解决方案二:

using System.Data.Objects.SqlClient; //在 System.Data.Entity.dll 中

//获取市级地区
public JsonResult GetCity(string id)
{
var city = from c in db.AreaDivide where SqlFunctions.StringConvert((double)c.ParentID) == id select new { text = c.AreaName, value = c.ID };
return Json(city.ToList(), JsonRequestBehavior.AllowGet);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
推荐于2016-11-28
展开全部
可用下述方法进行转换解决:
string source = "1,2,3,4,5";
List<int> result = new List<string>(source.Split(',')).ConvertAll(i => int.Parse(i));
注: 需引用下列命名空间
using System.Collections.Generic;
using System.Linq;
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式