sql 查询中的布尔值列总是 return false
Column of boolean always return false in sql query
net mvc core 2.2 和 Mssql.I 编写了一个工作正常的存储过程。结果:
但是每当我 运行 我的应用程序所有 stockPermit 列 returns false.
控制器
if (!String.IsNullOrEmpty(searchString))
{
searchString = Methods.RemoveTurkish(searchString);
bayiVM.JoinedTable = await _adb.CariUserJoin.FromSql("EXECUTE CariListeAra {0}", searchString).ToListAsync();
}
else
{
bayiVM.JoinedTable = await _adb.CariUserJoin.FromSql("EXECUTE CariListeGetir").ToListAsync();
}
var count = bayiVM.JoinedTable.Count;
bayiVM.JoinedTable = bayiVM.JoinedTable.Skip((productPage - 1) * PageSize).Take(PageSize).ToList();
bayiVM.PagingInfo = new PagingInfo
{
CurrentPage = productPage,
ItemsPerPage = PageSize,
TotalItems = count,
urlParam = param.ToString()
};
return View(bayiVM);
调试结果:
什么会导致这个问题。我感谢任何 help.Thank 你。
存储过程1
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
存储过程2
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; }
}
CariUserJoin:
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}
}
PS:我使用了 LEFT JOIN。我的意思是左 table 有 4500 行,右 table 有 30.
请使用:
public bool? StockPermit { get; set; }
需要 set;
才能真正设置 属性。需要 ?
才能使其可为空。
net mvc core 2.2 和 Mssql.I 编写了一个工作正常的存储过程。结果:
但是每当我 运行 我的应用程序所有 stockPermit 列 returns false.
控制器
if (!String.IsNullOrEmpty(searchString))
{
searchString = Methods.RemoveTurkish(searchString);
bayiVM.JoinedTable = await _adb.CariUserJoin.FromSql("EXECUTE CariListeAra {0}", searchString).ToListAsync();
}
else
{
bayiVM.JoinedTable = await _adb.CariUserJoin.FromSql("EXECUTE CariListeGetir").ToListAsync();
}
var count = bayiVM.JoinedTable.Count;
bayiVM.JoinedTable = bayiVM.JoinedTable.Skip((productPage - 1) * PageSize).Take(PageSize).ToList();
bayiVM.PagingInfo = new PagingInfo
{
CurrentPage = productPage,
ItemsPerPage = PageSize,
TotalItems = count,
urlParam = param.ToString()
};
return View(bayiVM);
调试结果:
什么会导致这个问题。我感谢任何 help.Thank 你。
存储过程1
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
存储过程2
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; }
}
CariUserJoin:
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}
}
PS:我使用了 LEFT JOIN。我的意思是左 table 有 4500 行,右 table 有 30.
请使用:
public bool? StockPermit { get; set; }
需要 set;
才能真正设置 属性。需要 ?
才能使其可为空。