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();
           }
        }
    }
  • 相关阅读:
    二分图的判定 (图)
    并查集(模板)
    数独 (dfs)
    Map <STL>
    Set <STL>
    二叉搜索树的实现
    Find a way (BFS)
    根据输入的变量,执行相应的计算公式并返回结果
    检测字符串当中x与o的数目是否相等
    根据给定的数字和字符串,生成循环指定次数的字符串
  • 原文地址:https://www.cnblogs.com/MissQing/p/7250102.html
Copyright © 2011-2022 走看看