【发布时间】:2016-02-23 04:14:34
【问题描述】:
我必须在存储过程的查询中使用CONTAINS(全文搜索)。因此,当我通过实体框架将此存储过程绑定到我的应用程序时,它会返回一个 int 值而不是对象列表。
前:
存储过程:
ALTER PROCEDURE [dbo].[GetTableData]
(@UserId UNIQUEIDENTIFIER)
AS
BEGIN
SET NOCOUNT ON;
SELECT Column1, Column2
FROM TABLE1
WHERE Id = @UserId AND CONTAINS(Column1,'test')
END
实际结果:
public virtual int GetTableData(Nullable<System.Guid> userId)
{
var userIdParameter = userId.HasValue ?
new ObjectParameter("UserId", userId) :
new ObjectParameter("UserId", typeof(System.Guid));
return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<GetTableData_Result>("GetTableData", userIdParameter );
}
预期结果:
public virtual ObjectResult<GetTableData_Result> GetTableData(Nullable<System.Guid> userId)
{
var userIdParameter = userId.HasValue ?
new ObjectParameter("UserId", userId) :
new ObjectParameter("UserId", typeof(System.Guid));
return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<GetTableData_Result>("GetTableData", userIdParameter );
}
如果我删除 AND CONTAINS(Column1,'test') 条件,它会完美运行并给出预期结果。
我也尝试了SET FMTONLY OFF 选项。那也不行。
我该如何解决这个问题?
需要在存储过程中添加任何属性或任何其他东西吗?
谁能帮我解决这个问题?
【问题讨论】:
标签: sql-server stored-procedures linq-to-entities entity-framework-6 c#-2.0