【问题标题】:Few columns retrieved as "null" after running SQL query in C#在 C# 中运行 SQL 查询后,很少有列检索为“null”
【发布时间】:2018-08-16 01:27:23
【问题描述】:

我已经在 Web API 解决方案中实现了 LINQ to Entities 以在给定的字符串上实现“慢速搜索”。

使用dbContext.database.SQLQuery<Table> 语法映射SQL 查询并最终接收行集合。

表格有 3 列:

AccountID (Guid)
Motor Name (NVARCHAR(50)
Motor Number (NVARCHAR(30)

AccountID 列使用正确的 Guid 值检索,而其他 2 列在调试和检查属性值时发现为 null。虽然,在数据库中,这些列确实有值。

为了验证,我在 SSMS 中运行了相同的 SQL 查询 - 在这里,列值正确显示。

SQL 查询是:

DECLARE @search NVARCHAR(10)
DECLARE @factor INT

SELECT AccountID, MotorName, MotorNumber
FROM MotorStore
WHERE DIFFERENCE(MotorName, @search) >= @factor

如果社区能分享一些方向,我将不胜感激。

有人也可以分享与上述查询等效的 LINQ 吗?

【问题讨论】:

标签: c# sql-server linq linq-to-sql linq-to-entities


【解决方案1】:

您可以通过使用 System.Data.Objects.SqlClient 命名空间中的 Difference 方法轻松做到这一点,如下所示。

            var res = from c in ctx.MotorStore
                      where SqlFunctions.Difference(c.MotorName,"searchstring")> factor

我建议你在这里阅读这篇文章。

https://docs.microsoft.com/en-us/dotnet/api/system.data.objects.sqlclient.sqlfunctions.difference?view=netframework-4.5.2

【讨论】:

    猜你喜欢
    • 2014-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多