繁体   English   中英

将SQL转换/转换为Entity Framework / LINQ

[英]Translate/Convert SQL to Entity Framework/LINQ

我正在构建一个MVC应用程序,并希望翻译以下简单的SQL查询

SELECT logon_count from application_users where username = 'username_to_find'

我是LINQ和Entity Framework的新手。 我需要将logon_count结果存储为C#int,并且只期望一个结果。 为了安全起见,应该合并一个限制1。

下列类是使用ado.net从数据库自动创建的,并表示application_users表。

public partial class application_users
{
    public int idapplication_users { get; set; }
    public string username { get; set; }
    public string first_name { get; set; }
    public string last_name { get; set; }
    public Nullable<int> logon_count { get; set; }
}

我也有dbcontext

private thedbcontext dbcontext= new thedbcontext (); //In the controller

public partial class mycontext : thedbcontext 
{
    public virtual DbSet<application_users> application_users { get; set; }
}

有人可以建议我如何更好地利用LINQ / Entity Framework执行上述SQL并以ac#整数形式获取结果。

假设thedbcontext是EntityFramework中的有效DbContext ,那么您要做的就是以下操作

var usernameToFind = "user1";
var db = new mycontext();
var logonCount = db.application_users.Count(t => t.username == usernameToFind);

通常,您的mycontext类将直接从EF的DbContext类派生,如下所示

public partial class mycontext : DbContext
{
    public virtual DbSet<application_users> application_users { get; set; }
}

像那样:

string username = "test";
using(var dbContext = mycontext())
{

var LogonCount = (from application_users in dbContext.application_users
                  where application_users.username == username
                  select application_users).Count();
}

或者您可以使用lambda表达式(如Richard发布)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM