![](/img/trans.png)
[英]Translate SQL 'not in' into LINQ to Entities using Entity Framework 4
[英]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.