Entity framework 4 是否可以从视图中使用`System.Data.Objects.SqlClient.SqlFunctions`?

Entity framework 4 是否可以从视图中使用`System.Data.Objects.SqlClient.SqlFunctions`?,entity-framework-4,asp.net-mvc-4,Entity Framework 4,Asp.net Mvc 4,我正在呈现一个具有整数值的dropdownlist,而SelectListItemvalue属性只接受一个字符串,因此不需要进行转换.ToString()函数 @Html.DropdownList(“ddl”),Model.recordList.Select( q=>new SelectListItem { Text=q.recordName, Value=SqlFunctions.StringConvert(q.recordId) } “选择一个”) //recordId是一个整数 我在运

我正在呈现一个具有整数值的dropdownlist,而
SelectListItem
value属性只接受一个字符串,因此不需要进行转换<无法使用code>.ToString()函数

@Html.DropdownList(“ddl”),Model.recordList.Select(
q=>new SelectListItem
{ 
Text=q.recordName,
Value=SqlFunctions.StringConvert(q.recordId)
}
“选择一个”)
//recordId是一个整数
我在运行时收到程序集引用错误:

The type or namespace name 'Objects' does not exist in the namespace 
'System.Data' (are you missing an assembly reference?)
已经存在对System.Data.Entity的项目引用,并且在我的视图中使用System.Data.Objects.SqlClient。我也希望这样,因为它不会出现在Intellisense中。我可以从控制器使用,但不能在视图中使用


我是否违反了MVC规则?或者可能配置错误?

这是一个配置错误。

要解决这个问题,我必须:

1) 将其添加到
视图/Web.config
中的程序集引用中



2) 更改
Project>References>System.Data.Entity
属性
Copy Local
=
True
。程序集未被复制到
bin
,因此标识为
缺失

为什么不能使用
ToString()
SqlFunctions.StringConvert
应仅在Linq to Entities查询中使用
ToString()
在这里是完全有效的。@LukLed,我不能使用
ToString()
,因为这个错误:LINQ to Entities不能识别方法'System.String ToString()'方法,并且这个方法不能翻译成存储表达式。@LukLed,这是一个错误配置。愚蠢的我……:)<代码>模型.记录列表不应作为Linq to entities查询传递给视图。您应该创建不包含EF对象的视图模型。谢谢,LukLed。我明白你的意思。我将修改我的实现。我将此标记为答案,因为它是我问题的解决方案。然而,当我试图从视图中加载数据库对象时,我所做的是反对MVC概念的。我修改了我的实现,不再需要这个了。