C# 在sql查询中,布尔值的列始终返回false

C# 在sql查询中,布尔值的列始终返回false,c#,entity-framework-core,asp.net-core-2.2,C#,Entity Framework Core,Asp.net Core 2.2,net mvc内核2.2和Mssql。我编写了一个运行良好的存储过程。结果是: 然而,每当我运行我的应用程序时,所有stockPermit列都返回false 控制器 导致调试: 是什么导致了这个问题。谢谢你的帮助,谢谢 存储过程1 存储过程2 我的视图模型 我用左键连接。我的意思是左表有4500行,右表有30行。请使用: public bool? StockPermit { get; set; } set,以便可以实际设置属性?需要使其可为空。您一直存在排序问题COLLATE DATABA

net mvc内核2.2和Mssql。我编写了一个运行良好的存储过程。结果是:

然而,每当我运行我的应用程序时,所有stockPermit列都返回false

控制器 导致调试:

是什么导致了这个问题。谢谢你的帮助,谢谢

存储过程1 存储过程2 我的视图模型 我用左键连接。我的意思是左表有4500行,右表有30行。

请使用:

public bool? StockPermit { get; set; }

set,以便可以实际设置属性<代码>?
需要使其可为空。

您一直存在排序问题
COLLATE DATABASE_DEFAULT
会覆盖它们,同时阻止优化器使用
UserName
CARI_KOD
列上的任何索引。如果检查执行计划,您将看到联接使用表扫描而不是索引查找。强制排序掩盖了问题并产生了性能问题。
ALTER PROCEDURE [dbo].[CariListeGetir]
AS
BEGIN

    SELECT [CARI_KOD], [CARI_ISIM], [LockoutEnd],[PlaKodu], [StockPermit] FROM YESLAS2018.dbo.TBLCASABIT
    left join b2byeslasDb.dbo.AspNetUsers on TBLCASABIT.CARI_KOD=AspNetUsers.UserName
END
ALTER PROCEDURE [dbo].[CariListeAra] (@ad nvarchar(15))
AS
BEGIN

    SELECT [CARI_KOD], [CARI_ISIM], [LockoutEnd],[PlaKodu], [StockPermit] FROM YESLAS2018.dbo.TBLCASABIT
    left join b2byeslasDb.dbo.AspNetUsers on TBLCASABIT.CARI_KOD=AspNetUsers.UserName
    where CARI_KOD like '%'+@ad+'%' or CARI_ISIM like '%'+@ad+'%'

END
public class BayiVewModel
    {
        public List<CariUserJoin> JoinedTable { get; set; }
        public PagingInfo PagingInfo { get; set; }
    }
public class CariUserJoin
    {
        [Key]
        public string CARI_KOD { get; set; }
        public string CARI_ISIM { get; set; }
        public DateTimeOffset? LockoutEnd { get; set; }
        public string PlaKodu { get; set; }
        public bool StockPermit { get;set}

    }
public bool? StockPermit { get; set; }