C# 在linq中将字符串转换为int
我有一个表tblcatalogue,有一个数据类型为varchar的列classid。我想要一个包含orderby classid的结果集,但问题是使用order by classid并没有给出所需的结果。因此我尝试将classid转换为整数,如C# 在linq中将字符串转换为int,c#,sql-server,linq,C#,Sql Server,Linq,我有一个表tblcatalogue,有一个数据类型为varchar的列classid。我想要一个包含orderby classid的结果集,但问题是使用order by classid并没有给出所需的结果。因此我尝试将classid转换为整数,如 var query= itemRepository.GetAll(); results = query.ToList().OrderBy(x=> Convert.ToInt32(x.ClassId)); 但我得到的sql查询如下 SE
var query= itemRepository.GetAll();
results = query.ToList().OrderBy(x=> Convert.ToInt32(x.ClassId));
但我得到的sql查询如下
SELECT
[Extent1].[Id] AS [Id],
[Extent1].[SubjectId] AS [SubjectId],
[Extent1].[SeriesId] AS [SeriesId],
[Extent1].[Title] AS [Title],
[Extent1].[Author] AS [Author],
[Extent1].[ISBN] AS [ISBN],
[Extent1].[Edition] AS [Edition],
[Extent1].[Price] AS [Price],
[Extent1].[Discount] AS [Discount],
[Extent1].[BoardId] AS [BoardId],
[Extent1].[ClassId] AS [ClassId]
FROM [dbo].[tblCataLogue] AS [Extent1]
ORDER BY [Extent1].[ClassId] ASC
我想要转换的sql查询,比如
SELECT
[Extent1].[Id] AS [Id],
[Extent1].[SubjectId] AS [SubjectId],
[Extent1].[SeriesId] AS [SeriesId],
[Extent1].[Title] AS [Title],
[Extent1].[Author] AS [Author],
[Extent1].[ISBN] AS [ISBN],
[Extent1].[Edition] AS [Edition],
[Extent1].[Price] AS [Price],
[Extent1].[Discount] AS [Discount],
[Extent1].[BoardId] AS [BoardId],
[Extent1].[ClassId] AS [ClassId]
FROM [dbo].[tblCataLogue] AS [Extent1]
ORDER BY covnert(int,[Extent1].[ClassId]) ASC
因为它在使用ToList()
时给出了正确的结果集,所以您正在执行对数据库的查询,因此不会进行您想要的排序。删除ToList()
,order by子句也将转换为sql:
results = query.OrderBy(x=> Convert.ToInt32(x.ClassId)).ToList();
至于正在进行的错误,linq提供程序不支持
Convert.ToInt32
,因此无法将其转换为sql。因此,你应该做两件事中的一件:
ToList()
/AsEnumerable()
),然后转换ToList()
时,您正在执行对数据库的查询,因此不会进行所需的排序。删除ToList()
,order by子句也将转换为sql:
results = query.OrderBy(x=> Convert.ToInt32(x.ClassId)).ToList();
至于正在进行的错误,linq提供程序不支持
Convert.ToInt32
,因此无法将其转换为sql。因此,你应该做两件事中的一件:
ToList()
/AsEnumerable()
),然后转换Remove
ToList()
我得到的错误类似于LINQ-to-Entities不识别方法“Int32-ToInt32(System.String)”方法,并且此方法无法转换为存储表达式。RemoveToList()
我得到的错误类似于LINQ-to-Entities不识别方法“Int32-ToInt32(System.String)”方法,并且此方法无法转换为存储表达式。我遇到了类似LINQ to Entities无法识别方法“Int32 ToInt32(System.String)”的错误,并且此方法无法转换为存储表达式Rahul SrivastavaI am getting error(如LINQ to Entities)无法识别方法“Int32 ToInt32(System.String)”方法,并且此方法无法转换为存储表达式拉胡尔·斯利瓦斯塔瓦