我已经在Web API解决方案中实现了LINQ to Entities,以在给定的字符串上实现“慢速搜索”。
使用dbContext.database.SQLQuery<Table>
语法映射SQL查询并最终接收到行集合。
该表有3列:
AccountID (Guid)
Motor Name (NVARCHAR(50)
Motor Number (NVARCHAR(30)
使用正确的Guid值检索 AccountID
列,而在调试和检查属性值时发现其他2列为null
。尽管在数据库中,这些列确实具有值。
为了验证,我在SSMS中运行了相同的SQL查询-在这里,正确显示了列的值。
SQL查询为:
DECLARE @search NVARCHAR(10)
DECLARE @factor INT
SELECT AccountID, MotorName, MotorNumber
FROM MotorStore
WHERE DIFFERENCE(MotorName, @search) >= @factor
我非常感谢社区分享一些指导。
有人还能共享上述查询的LINQ等效项吗?
答案 0 :(得分:0)
通过使用如下所示的System.Data.Objects.SqlClient命名空间中的Difference方法,可以轻松地做到这一点。
var res = from c in ctx.MotorStore
where SqlFunctions.Difference(c.MotorName,"searchstring")> factor
我建议您在这里阅读这篇文章。