zoukankan      html  css  js  c++  java
  • Asp.net+EF

    EFRepositoryBase

    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Data.Entity;
    using System.Data.SqlClient;
    using System.Linq;
    using System.Text;
    
    namespace Piano.Common.Extend.Models.DBProvider
    {
        public class EFRepositoryBase<T> where T : DbContext
        {
            protected T _ctx;
    
            /// <summary>
            /// 执行存储过程并返回returnValue值,适用于不返回结果集,只返回一个returnvalue的存储过程
            /// </summary>
            /// <param name="storedProcedure"></param>
            /// <param name="parameters"></param>
            /// <returns></returns>
            public object ExecuteStoredProcedureNonQuery(string storedProcedure,string _conn_str, params SqlParameter[] parameters)
            {
                //string ConnectionString = _ctx.Database.Connection.ConnectionString;
                SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(_conn_str);
                builder.ConnectTimeout = 2500;
                object returnValue = null;
                using (SqlConnection con = new SqlConnection(builder.ConnectionString))
                {
                    con.Open();
                    using (SqlCommand cmd = con.CreateCommand())
                    {
                        try
                        {
                            cmd.CommandText = storedProcedure;
                            cmd.CommandType = System.Data.CommandType.StoredProcedure;
                            cmd.CommandTimeout = 0;
                            foreach (SqlParameter p in parameters)
                            {
                                cmd.Parameters.Add(p);
                            }
                            SqlParameter retval = new System.Data.SqlClient.SqlParameter
                            {
                                ParameterName = "@ReturnValue",
                            };
                            retval.Direction = ParameterDirection.ReturnValue;
                            cmd.Parameters.Add(retval);
    
                            int rows = cmd.ExecuteNonQuery();
                            returnValue = cmd.Parameters["@ReturnValue"].Value;
                        }
                        catch (Exception e)
                        {
                            returnValue = -1;
                            System.Diagnostics.Debug.WriteLine(e.StackTrace);
                        }
                        cmd.Dispose();
                    }
                    con.Close();
                }
                return returnValue;
            }
    
    
    
        }
    }

    使用:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace Piano.Common.Extend.Models.DBProvider
    {
       public class FlowOrderRepository : EFRepositoryBase<PianoEntities>
        {
           public FlowOrderRepository()
           {
               _ctx = new PianoEntities();
           }
    
           public void SaveOrder()
           {
               _ctx.SaveChanges();
           }
        }
    }
  • 相关阅读:
    Spark-sql windows 下 执行错误.
    notepad ++ 注册表
    log4j 配置文件 示例
    linux 查看 进程 内存占用
    spring boot 常见错误解决
    python 轻量 web 框架 Bottle 使用
    Spring cloud eureka 添加 spring-security
    vue can‘ not resolver sass-loader 的 解决办法。
    外国人眼中的珍珠奶茶是啥?
    75.2亿美元:诺基亚、微软终于在一起
  • 原文地址:https://www.cnblogs.com/MissQing/p/7250102.html
Copyright © 2011-2022 走看看