【发布时间】:2015-06-15 21:50:09
【问题描述】:
- 使用 SQL Server 管理
- 为 Web 使用 MVC VS 2013
- 处于控制器中
这里 materialnumb 这是一个 总是 只返回一个值的 LINQ 查询。 作为以下...
var materialnumb = (from r in db.MaterialNumber
where r.MaterialNumber == 80254842
select r.MaterialNumber);
我有另一个来自 SQL 视图的 LINQ 查询,该查询涉及具有内部连接语句等的其他几个表(包括前一个表 db.MaterialNumber),如下所示:
var query = (from r in db.SQLViewFinalTable
where r.MaterialNumber == Convert.ToInt32(materialnumb.MaterialNumber)
select r
我想按从第一个查询中检索到的材料编号对所有材料进行排序,但是当我尝试将查询作为我的视图的模型传递时,它会丢弃以下错误:
LINQ to Entities 无法识别方法 'Int32 ToInt32(System.String)' 方法,这个方法不能翻译 到商店表达式中。
我认为这是因为查询是一个对象,即使它只有一个值,所以它不能转换为单个 Int32。 更何况,它并没有被执行的查询,它只是一个查询……
那么,怎样才能实现我的目标呢?
附加信息:我尝试在“最终”查询之外转换查询。它仍然不起作用。 附加信息:这只是一个例子,真正的查询实际上嵌入了更多其他查询,并且这些其他查询中也有其他查询,所以我需要一种实用的方法。 附加信息:我还尝试将查询转换为字符串,然后再转换为 int。
【问题讨论】:
标签: sql-server linq entity-framework controller