DbContext(String)+SqlQuery一起使用

DbContext(String) 可以将给定字符串用作将连接到的数据库的名称或连接字符串来构造一个新的上下文实例。

Database.SqlQuery 方法 (Type, String, Object[])

public DbRawSqlQuery<TElement> SqlQuery<TElement>(string sql, params object[] parameters);

 

if (Typeid.HasValue)//查询类型名称 跨表
            {
                using (var db = new System.Data.Entity.DbContext("Default"))
                {
                    result.Type = db.Database.SqlQuery<string>("SELECT Name FROM[dbo].[TypeBase] WHERE [Typeid] ='" + Typeid + "'").First();
          } 
       }

 我后来找了一下相关资料,他这个部分写的不错。点击这里跳转

转载于:https://www.cnblogs.com/xuxml/p/8484613.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SqlQuery是Entity Framework中的一个方法,用于执行原始的SQL查询并返回给定泛型类型的元素。它可以用于两种不同的情况。 第一种情况是在DbSet<T>上使用SqlQuery方法。例如,在一个控制器的Index方法中,你可以使用以下代码来执行一个SQL查询并将结果转换为指定的实体类: ```csharp using (MyContext db = new MyContext()) { string sql = "SELECT * FROM Class WHERE Id = 1"; IList<Classes> queryResult = db.Database.SqlQuery<Classes>(sql).ToList(); var count = queryResult.Count; } ``` 这个示例中,使用DbContextDatabase属性,然后调用了SqlQuery方法,传入了SQL查询字符串和要返回的实体类类型。最后,将结果转换为一个列表。 第二种情况是直接在DbContext使用SqlQuery方法。例如,你可以在一个控制器的方法中调用存储过程并获取结果集: ```csharp public string YanJiuShengPeiYangZhuTiList() { var account = DataCollection.userinfo.UserAccount; SqlParameter[] parameters = new SqlParameter[] { new SqlParameter("@account", account) }; var result = ""; var queryResult = Model.Database.SqlQuery<Zsl>("exec usp_Total3 @account", parameters).OrderByDescending(a => a.NJ); result = queryResult.ToJson(); return result; } ``` 在这个示例中,使用DbContextDatabase属性,然后调用了SqlQuery方法,传入了存储过程的调用字符串和参数。最后,对结果集进行排序并将结果转换为JSON格式。 除了返回查询结果的方法之外,你还可以使用db.Database.ExecuteSqlCommand方法来执行操作语句,例如UPDATE或DELETE语句。例如,在一个控制器的Index2方法中,你可以使用以下代码来执行一个更新操作: ```csharp using (MyContext db = new MyContext()) { string sql = "UPDATE Class SET ClassName = '十班' WHERE Id = 7"; int affectedRows = db.Database.ExecuteSqlCommand(sql); } ``` 在这个示例中,使用DbContextDatabase属性,然后调用了ExecuteSqlCommand方法,传入了更新语句。最后,返回受影响的行数。 综上所述,SqlQuery是Entity Framework中用于执行原始SQL查询并返回给定泛型类型的方法。它可以在DbSet<T>上使用,也可以直接在DbContext使用。除此之外,你还可以使用ExecuteSqlCommand方法来执行操作语句。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值