实体框架单位查询返回值为布尔值

时间:2018-01-26 16:36:21

标签: c# entity-framework

我有一个查询代码,用于检查是否允许工程师从数据库中执行某些操作

   if (isAllowed)
                {
                 ...do something
                }

我尝试在IF语句中使用isAllowed

ToString=="{IsAllowed = False}"

错误:

enter image description here

如果我使用ToString(),那么我会看到

enter image description here

为避免使用{{1}},我该如何解决此错误?

2 个答案:

答案 0 :(得分:5)

您有匿名类型。我认为你不需要它:

var isAllowed = context.Engineers
                       .Where(b => b.Engineer1 == Environment.UserName)
                       .First().IsAllowed;

如果您出于某种原因想要使用它,您可以:

if (isAllowed.IsAllowed)

答案 1 :(得分:2)

Select(x => new { x.IsAllowed }).First()的结果是匿名类型的对象,其中包含一个名为IsAllowed的字段。您可以使用点表达式访问它,但它看起来不太好:

if (isAllowed.IsAllowed) { // <<== This reads as a repetition
    ...
}

如果您想要直接bool,请删除new

Select(x => x.IsAllowed).First()