简体   繁体   English

如何在EF 6.0中调用原始SQL查询

[英]How to call raw SQL queries in EF 6.0

I have a simple gridview which I need to bind with a list of users. 我有一个简单的gridview,我需要绑定一个用户列表。

In EF.5.0 I could simple write 在EF.5.0中,我可以简单地写

context.Users.Select(emp => new { Name = emp.FirstName, EmailId = emp.EmailId, UserId = emp.UserId }).ToList();

However, I don't see the .ToList() method anymore in EF6.0 但是,我在.ToList()不再看到.ToList()方法

So, I have to write an async query using ToAsyncList() . 因此,我必须使用ToAsyncList()编写一个异步查询。 However, not sure why the below code does not work and system goes in endless execution. 但是,不确定为什么以下代码不起作用,并且系统会无休止地执行。

protected void Page_Load(object sender, EventArgs e)
{
    var task = LoadData();
    task.Wait();
    GridView1.DataSource = task.Result;
    GridView1.DataBind();
}

private async Task<List<User>> LoadData()
{
    List<User> users = null;

    using (var context = new BlogEntities())
    {
        users = await context.Database.SqlQuery<User>("Select * from User", new object[] { }).ToListAsync();
    }

    return users;
}

Can anyone please let me know, what I am doing wrong here? 谁能告诉我,我在这里做错了吗?

使用此代码:

var users = context.Users.SqlQuery("SELECT * FROM dbo.User").ToList(); 

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

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