【发布时间】:2012-03-31 17:58:32
【问题描述】:
正如我的标题所说,我在尝试发出一些实体 SQL 请求时遇到了麻烦。
这里的整个代码必须用作搜索引擎。我需要构建字符串,然后将它们转换为查询。我已经用 linq-to-sql 完成了所有工作。但似乎不可能将字符串转换为 linq 查询。但是,我在 stackoverflow 上找到了一种解决方案,但我一直无法使用它:String.ToLinqQuery()。 Visual Studio 不知道它,我找不到任何关于它的文档。
虽然,这是我得到的错误:
指定的表达式必须是 CollectionType。近括号表达式,第 1 行,第 20 列。
说明:在执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.Data.EntitySqlException:指定的表达式必须是 CollectionType。近括号表达式,第 1 行,第 20 列。
来源错误:
第 145 行:会议
第 146 行:
第 147 行:@For Each meeting In Model.Meetings
第 148 行:@@meeting.date
第 149 行:@Html.ActionLink("Edit", "Edit", "Meeting", New With {.id = meeting.idmeeting}, "Null")
这是我所有的代码:控制器:
Imports System.Data.Objects
Imports System.Linq.Expressions
Namespace MvcApplication4
Public Class SearchController
Inherits System.Web.Mvc.Controller
<HttpPost()>
Function Index(search As String, choix As Integer) As ActionResult
Dim test As Integer = Request("choix")
Dim chaine As String = Request("searchString")
Dim message As String = "message"
Dim requete As String = "Select value p FROM('db.meeting') as p where p.compteRendu LIKE '%chaine%'"
Dim meetings = New ObjectQuery(Of meeting)(requete, db)
Dim model = New SearchModel With {
.Meetings = meetings,
}
Return View(model)
End Function
End Class
End Namespace
型号:
Public Class SearchModel
Public Property Meetings As IEnumerable(Of meeting)
End Class
查看:
@Modeltype MvcApplication4.SearchModel
@<fieldset>
<legend>Meetings</legend>
@For Each meeting In Model.Meetings
@<ul> @meeting.date
@Html.ActionLink("Edit", "Edit", "Meeting", New With {.id = meeting.idmeeting}, "Null") </ul>
@<li> @Html.Raw(meeting.compteRendu.Replace(System.Environment.NewLine, "<br />"))</li>
Next meeting
</fieldset>
我做错了什么?
这是我的 .edmx 模型的一部分
<EntityType Name="meeting">
<Key>
<PropertyRef Name="idmeeting" />
</Key>
<Property Name="idmeeting" Type="int" Nullable="false" StoreGeneratedPattern="Identity" />
<Property Name="FK_meet_client" Type="int" />
<Property Name="FK_meet_contact" Type="int" />
<Property Name="FK_meet_opport" Type="int" />
<Property Name="FK_meet_user" Type="int" />
<Property Name="compteRendu" Type="longtext" />
<Property Name="date" Type="datetime" />
<Property Name="adresse" Type="text" />
</EntityType>
【问题讨论】:
标签: .net vb.net linq asp.net-mvc-3 entity-framework