[英]Why I am getting null result from a sql query even though the condition is true?
我有一個名為“ generation_unit_mobile”的表:
現在,我嘗試根據以下where子句獲取結果:
public int MobileExistToAnotherGenerationUnit(string mobileNo, long generationUnitId)
{
var result = _mobileRepository.Table
.Where(gum => gum.mobileno == mobileNo && gum.generation_unit_id != generationUnitId)
.Select(s => new Generation_unit_mobile
{
id = s.id
})
.FirstOrDefault();
return result == null ? 0 : 1;
}
從以上這段代碼中,MobileExistToAnotherGenerationUnit應該為generation_unit_id = 2和mobileno = 01673050495返回1 。 但是對於這個mobileno和generation_unit_id = 2,它返回0。奇怪的是,對於generation_unit_id = 1和mobileno = 01673050495,它也返回0。我的代碼怎么了?
將mobileno轉換為字符串,以便Db進入以下查詢
Select * from your_table where
generation_unit_id=2 and
Mobileno='01673040595' --single quote essential
計算結果:
如果計數為零,則返回0,否則返回1
public int MobileExistToAnotherGenerationUnit(string mobileNo, long generationUnitId)
{
int result = _mobileRepository.Table
.Where(gum => gum.mobileno == mobileNo && gum.generation_unit_id !=
generationUnitId)
.Select(s => new Generation_unit_mobile
{
id = s.id
}).ToList().Count;
return result == 0 ? 0 : 1;
}
這個答案不會解決您遺漏的結果,只是提示您可以簡化代碼。
public Task<bool> MobileExistToAnotherGenerationUnit(string mobileNo, long generationUnitId) =>
_mobileRepository.Table
.AnyAsync(gum => gum.mobileno == mobileNo && gum.generation_unit_id != generationUnitId);
看起來:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.