Asp.net core 如何在异步代码中获得单个属性

Asp.net core 如何在异步代码中获得单个属性,asp.net-core,asynchronous,asp.net-core-mvc,asp.net-core-3.1,Asp.net Core,Asynchronous,Asp.net Core Mvc,Asp.net Core 3.1,我有下面的模型课- public partial class Settings { public int Id { get; set; } public string Value { get; set; } public string Name { get; set; } } 在我的asp.net core MVC 3.1中,我只想获取单个项目的值,现在我无法做到这一点:- var result = await _contex

我有下面的模型课-

  public partial class Settings
    {
        public int Id { get; set; }
        public string Value { get; set; }
        public string Name { get; set; }
    }
在我的asp.net core MVC 3.1中,我只想获取单个项目的值,现在我无法做到这一点:-

var result = await _context.Settings.SingleOrDefaultAsync(a => a.Name.ToLower() == "noofvisits").Value;
唯一的方法是首先从数据库中获取整个对象,然后获取其值,如下所示:-

var result = await _context.Settings.SingleOrDefaultAsync(a => a.Name.ToLower() == "noofvisits");
var val = result.Value;

但是,为了使我的代码更高效,如何直接从数据库异步获取Value属性?

您应该使用原始Sql查询

试试这个:

var result = await _context.Settings.FromSql("SELECT Top(1) NAME FROM dbo.Settings ").SingleOrDefaultAsync();

请尝试以下语句:

var result = await _context.Settings.Where(a => a.Name.ToLower() == "noofvisits").Select(o => o.Value).FirstOrDefaultAsync();