在ASP.NET MVC3(C#)中执行SQL语句

3
如何在asp.net mvc3 (C#)中执行sql语句?我正在为我的asp.net mvc应用程序使用Entity Data Model。
我需要执行一个sql查询(“select * from users where EmailAddress like '%@gmail.com'”)。

请了解NHibernate或DAL包装器。 - Ash Burlaczenko
1
使用SqlConnection来执行SqlCommand。理想情况下,这应该在Model中完成,然后由Controller中的一个action调用。 - Alex R.
你没有用户实体吗? - Mike Miller
是的,我有这个实体,但我需要它来实现一个特定场景,即管理员可以根据自定义查询(如高级搜索)筛选用户。当管理员使用高级搜索时,我可以构建一个查询并尝试执行并获取结果。 - Prasad
1个回答

5

您的User实体是否已映射?如果是这样,您可以使用

var users = from u in context.Users
            where u.EmailAddress.EndsWith("@gmail.com")
            select u;

如果您没有映射User表,但是有User类,该类具有无参构造函数和与结果集中列名称相同的公共可设置属性,则可以使用以下方法:

var users = context.ExecuteStoreQuery<User>("select * from users where EmailAddress like '%@gmail.com'");

在使用 ObjectContext API 时或:

var users = context.Database.SqlQuery<User>("select * from users where EmailAddress like '%@gmail.com'");

如果您没有实体,可以通过创建 SqlConnectionSqlCommand 并在命令上调用 ExecuteReader 将其视为任何其他 ADO.NET 命令来执行。


我们可以使用ExecuteStoreQuery连接多个表吗? - Prasad
你可以使用该方法执行任何SQL查询,因此你也可以连接表。 - Ladislav Mrnka
你能否在多个表上以这种方式执行查询? - aaronmallen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接