我有一个Fruits包含以下列的表
UserID | FruitID
Run Code Online (Sandbox Code Playgroud)
我想验证UserID是否已在FruitID上获得授权,所以我写的是这样的:
var IsAuthorized = (from f in MyDC.Fruits
where f.UserID == TheUserID && f.FruitID == TheFruitID
select f.FruitID).SingleOrDefault();
Run Code Online (Sandbox Code Playgroud)
因此,如果用户被授权,则查询返回ID,如果未经授权,则返回null.然后我检查返回值是否为null,然后根据返回的值设置bool.
我想要做的是返回bool:如果用户被授权,那么它应该返回true.
如何修改查询以返回布尔值?
谢谢.
Dar*_*rov 15
var IsAuthorized = from (f in MyDC.Fruits
where f.UserID == TheUserID && f.FruitID == TheFruitID
select f.FruitID).SingleOrDefault() != null;
Run Code Online (Sandbox Code Playgroud)
或者如果您希望由底层LINQ提供程序完成此操作(例如,如果您使用的是SQL Server),则可以使用.Any更好的扩展方法:
var IsAuthorized = MyDC
.Fruits
.Any(f => f.UserID == TheUserID && f.FruitID == TheFruitID);
Run Code Online (Sandbox Code Playgroud)
Ale*_*pin 12
如果源序列包含任何元素,Any()将返回true; 否则,错误.
var IsAuthorized = from (f in MyDC.Fruits
where f.UserID == TheUserID && f.FruitID == TheFruitID
select f.FruitID).Any();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7301 次 |
| 最近记录: |