在 MVC 中使用另一个 LINQ 对 LINQ 进行排序
Sort a LINQ with another LINQ in MVC
- 使用SQL服务器管理
- 为 Web 使用 MVC VS 2013
- 在控制器中
这里 materialnumb 这是一个 LINQ 查询,总是 return 只有一个值。
正在以下...
var materialnumb = (from r in db.MaterialNumber
where r.MaterialNumber == 80254842
select r.MaterialNumber);
我有另一个来自 SQL 视图的 LINQ 查询,它涉及其他几个 tables 和内部连接语句等等(包括之前的 table db.MaterialNumber ) 是这样的:
var query = (from r in db.SQLViewFinalTable
where r.MaterialNumber == Convert.ToInt32(materialnumb.MaterialNumber)
select r
我想根据从第一个查询中检索到的 material 编号对所有 material 进行排序,但是当我尝试将查询作为我的视图的模型传递时,它会抛出以下错误:
LINQ to Entities does not recognize the method 'Int32
ToInt32(System.String)' method, and this method cannot be translated
into a store expression.
我认为这是因为查询是一个对象,即使它只有一个值,所以它不能转换为单个 Int32。
更重要的是,它没有被执行的查询,它只是一个查询...
那么,怎样才能达到我的目的呢?
附加信息:我尝试将查询转换到 "final" 查询之外。它仍然不起作用。
附加信息:这只是一个示例,真正的查询实际上还嵌入了其他几个查询,而其他查询中也包含其他查询,因此我需要一种实用的方法。
附加信息:我还尝试将查询转换为字符串,然后再转换为 int。
试试这个:
var materialnumb = (from r in db.MaterialNumber
where r.MaterialNumber == 80254842
select r.MaterialNumber).FirstOrDefault();
var query = from r in db.SQLViewFinalTable
where r.MaterialNumber == materialnumb
select r
但我不明白你为什么要按 80254842 过滤并选择相同的值?你可以直接做:
var query = from r in db.SQLViewFinalTable
where r.MaterialNumber == 80254842
select r
- 使用SQL服务器管理
- 为 Web 使用 MVC VS 2013
- 在控制器中
这里 materialnumb 这是一个 LINQ 查询,总是 return 只有一个值。 正在以下...
var materialnumb = (from r in db.MaterialNumber
where r.MaterialNumber == 80254842
select r.MaterialNumber);
我有另一个来自 SQL 视图的 LINQ 查询,它涉及其他几个 tables 和内部连接语句等等(包括之前的 table db.MaterialNumber ) 是这样的:
var query = (from r in db.SQLViewFinalTable
where r.MaterialNumber == Convert.ToInt32(materialnumb.MaterialNumber)
select r
我想根据从第一个查询中检索到的 material 编号对所有 material 进行排序,但是当我尝试将查询作为我的视图的模型传递时,它会抛出以下错误:
LINQ to Entities does not recognize the method 'Int32 ToInt32(System.String)' method, and this method cannot be translated into a store expression.
我认为这是因为查询是一个对象,即使它只有一个值,所以它不能转换为单个 Int32。 更重要的是,它没有被执行的查询,它只是一个查询...
那么,怎样才能达到我的目的呢?
附加信息:我尝试将查询转换到 "final" 查询之外。它仍然不起作用。 附加信息:这只是一个示例,真正的查询实际上还嵌入了其他几个查询,而其他查询中也包含其他查询,因此我需要一种实用的方法。 附加信息:我还尝试将查询转换为字符串,然后再转换为 int。
试试这个:
var materialnumb = (from r in db.MaterialNumber
where r.MaterialNumber == 80254842
select r.MaterialNumber).FirstOrDefault();
var query = from r in db.SQLViewFinalTable
where r.MaterialNumber == materialnumb
select r
但我不明白你为什么要按 80254842 过滤并选择相同的值?你可以直接做:
var query = from r in db.SQLViewFinalTable
where r.MaterialNumber == 80254842
select r