linq to entity不识别方法"System.String ToString()"

将班级id以字符串形式输入如:“1111,1112,1113”。
数据库里的id为int型,
在数据路里找到匹配的相应班级转换成列表。
在这里爆出问题:不识别方法"System.String
ToString()",跪求大神提出解决方案。
public IEnumerable<Class1>
FindClassesByIDs(string ids)
       
{
            var r =
from c in
this.DbContext.Class1
                   
where ids.IndexOf(c.Class1ID.ToString()) >=
0
                   
select c;
           
return r.ToList();
        }

方法1: 字符串数组转整形数组  然后用contains

string str=“1111,1112,1113”;
string[] strArray =str.Split(new char[]{ ‘,‘
});
int[] intArray;

intArray = Array.ConvertAll<string,
int>(strArray, s => int.Parse(s));
var r = from c in
this.DbContext.Class1
                   
where c.Class1ID    in    intArray  
select c;

方法2:  同一种方法

var strids=
ids.Split(‘,‘);
           
int []intids=new
int[strids.Length];
           
for (int i = 0; i < strids.Length;
i++)
           
{
               
intids[i]
=int.Parse(strids[i]);
           
}
        
intids.contain(.......)

linq to entity不识别方法"System.String ToString()",布布扣,bubuko.com

时间: 2024-10-13 17:37:08

linq to entity不识别方法"System.String ToString()"的相关文章

LINQ to Entities 不识别方法“System.String ToString() 的解决方法

今天在做一个页面的时候出现了LINQ to Entities 不识别方法"System.String ToString()"的错误,对于源码IQueryable<SelectListItem> items = roleInfoServer.Get(r => true).Select(r => new SelectListItem() { Value = r.Id.ToString(), Text = r.RoleName });找了好长的时间没有找到原因.无奈之

LinQ to entities 不能识别方法“system.string.ToString(system.String)”.因此该方法无法转换为存储表达式

[我也是刚研究IEnumerable和IQueryable]以下都是个人理解,仅供参考,如有错误欢迎指出~ 在EF里面,使用IQueryable和IEnumerable可以延迟加载. IQuerybale其实是微软针对SQLService进行了再度优化的一个产物.使用上基本和IEnumerable类似. 其实还是有一些使用上的区别的,比如说IEnumerable里面有count()方法,我们可以借此进行for循环.IQueryable却只能foreach循环. —————————————————

LINQ to Entities 不识别方法“System int string 转换的问题

这个问题困扰了挺久,网上找了挺多方法 都太好使. 分几种情况. 1.如果查询结果 转换,那比较容易. var q = from c in db.Customers where c.Country == "UK" || c.Country == "USA" select new { Phone = c.Phone, InternationalPhone = PhoneNumberConverter(c.Country, c.Phone) }; public strin

LINQ to Entities 不识别方法 ...

今天遇到一个错误,记录一下,以备以后用到. System.NotSupportedException: LINQ to Entities 不识别方法“System.DateTime AddMinutes(Double)”,因此该方法无法转换为存储表达式. 导致错误的代码是这一句 其中在代码中使用了AddMinutes方法,不能被识别,解决办法, 在使用时调用一下Compile()方法转换一下即可. AsNoTracking()方法是阻止EF的默认缓存机制,在System.Data.Entity命

LINQ to Entities 不识别方法“Int32 Parse(System.String)”,因此该方法无法转换为存储表达式。解决

  问题描述 最近在用LINQ to Entities,看看下面的代码 //获取分页数据 var admins = from aa in db.VAccountAdmins select aa; //处理过滤规则 if (null != filterRules) { JArray roles = (JArray) JsonConvert.DeserializeObject(filterRules); foreach (var fr in roles) { string field = fr["f

LINQ to Entities不识别方法***,因此该方法无法转换为存储表达式

我的程序里有这么一段代码: order.OrderExpressInfo = (from oei in orderExpressRepository.Entities where oei.OrderId == order.OrderId select new EbcBuy.Bll.Orders.Models.OrderExpress { ContentInfo = oei.ContentInfo, CreatedTime = oei.CreatedTime, CreatedUserId = oe

Linq to Entities不识别方法

db.UserValidates.Include(a => a.User).Where(uv => u.UserValidates.Contains(uv, c)).ToList(); 执行时出现:Linq to Entities不识别方法 解决方式可以使用lambda表达式树 Expression<Func<UserValidate, bool>> express = uv => u.UserValidates.Contains(uv, c); db.UserV

.net framework4.6项目的dll升级后,未找到方法“System.String.GetPathsOfAllDirectoriesAbove”解决

https://stackoverflow.com/questions/59276192/getpathsofalldirectoriesabove-cannot-be-evaluated-after-updating-net-framewor 严重性 代码 说明 项目 文件 行 禁止显示状态错误 这台计算机上缺少此项目引用的 NuGet 程序包.使用“NuGet 程序包还原”可下载这些程序包.有关更多信息,请参见 http://go.microsoft.com/fwlink/?LinkID=3

报错: LINQ to Entities 不识别方法&ldquo;Int32 Parse(System.String)

断点调试发现报错的语句为: public ActionResult SomeMethod(string someId) { var temp = SomeService.LoadEntities(a => a.ID == int.Parse(someId)); } 原因是:在Lambda表达式内部不能实现数据类型转换.解决方法:在使用Lambda表达式之前,先对数据类型进行转换. public ActionResult SomeMethod(string someId) { int tempIn