And*_*elt 3 c# linq entity-framework
我尝试从实体框架获取数据记录ID:
var plantAreaID = await db.PlantAreas
.Where(p => p.Plant.CompanyNo == companyNo && p.Plant.Abbreviation == companyAbbr)
.Select(p => p.ID)
.SingleOrDefaultAsync();
Run Code Online (Sandbox Code Playgroud)
问题是,存在一个PlantAreaID为0的ID。但是,如果SingleOrDefault未找到任何记录,则返回0。那么,如何区分ID 0和没有找到数据的情况?
我的第一个想法是提供默认值-1,但SingleOrDefault在这个星座中似乎不支持该值。
我怎样才能做到这一点?
null 是指示缺失值的正常方法。
var plantAreaID = await db.PlantAreas
.Where(p => p.Plant.CompanyNo == companyNo && p.Plant.Abbreviation == companyAbbr)
.Select(p => new int?(p.ID))
.SingleOrDefaultAsync();
Run Code Online (Sandbox Code Playgroud)
如果您要使用-1表示缺失值,可以说
var plantAreaID = await db.PlantAreas
.Where(p => p.Plant.CompanyNo == companyNo && p.Plant.Abbreviation == companyAbbr)
.Select(p => new int?(p.ID))
.SingleOrDefaultAsync() ?? -1;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
83 次 |
| 最近记录: |