Beispiel #1
0
        //static DBContext()
        //{
        //    contenxtCache = new Dictionary<string, TM_SaaS_OA_EFModelContext>();
        //    dictionaryThread = new Dictionary<string, List<object>>();
        //    dictionaryThread_Te = new Dictionary<object, string>();
        //    transactionList = new List<string>();
        //}
        ////public static Dictionary<string, TM_SaaS_OA_EFModelContext> contenxtCache;
        //public static Dictionary<string, List<object>> dictionaryThread;
        //public static Dictionary<object, string> dictionaryThread_Te;
        //public static List<string> transactionList;
        //private static object lockObj = new object();

        //public static TM_SaaS_OA_EFModelContext CreateObjectContext()
        //{
        //    return new TM_SaaS_OA_EFModelContext();
        //}
        //public static TM_SaaS_OA_EFModelContext GetObjectContext(object obj)
        //{
        //    TM_SaaS_OA_EFModelContext dbinstance = new TM_SaaS_OA_EFModelContext();
        //    //string threadName = Thread.CurrentThread.Name;
        //    //if (threadName!= null &&  contenxtCache.ContainsKey(threadName))
        //    //{
        //    //    dbinstance = contenxtCache[threadName];
        //    //}
        //    //else
        //    //{
        //    //    if (threadName == null)
        //    //    {
        //    //        threadName = Guid.NewGuid().ToString();
        //    //        Thread.CurrentThread.Name = threadName;
        //    //    }
        //    //    dbinstance = new TM_SaaS_OA_EFModelContext();
        //    //    dbinstance.CommandTimeout = 180;
        //    //    //db.Log = Console.Out;
        //    //    //dbinstance.Log = Console.Out;
        //    //    //dbinstance.ObjectTrackingEnabled = false;
        //    //    contenxtCache.Add(threadName, dbinstance);

        //    //}
        //    //RegisterObj(obj);
        //    return dbinstance;
        //}

        //public static TM_SaaS_OA_EFModelContext GetObjectContext()
        //{
        //    //string threadName = Thread.CurrentThread.Name;
        //    //if (threadName != null)
        //    //{
        //    //    return contenxtCache[threadName];
        //    //}
        //    //else
        //    //{
        //        return new TM_SaaS_OA_EFModelContext();
        //    //}
        //}

        //private static void RegisterObj(object obj)
        //{
        //    string threadName = Thread.CurrentThread.Name;
        //    List<object> list = null;
        //    if (dictionaryThread.ContainsKey(threadName))
        //    {
        //        list = dictionaryThread[threadName];
        //    }
        //    else
        //    {
        //        list = new List<object>();
        //        dictionaryThread.Add(threadName, list);
        //    }
        //    list.Add(obj);
        //}

        //public static void UnregisterObj(object obj)
        //{
        //   //  SMT.Foundation.Log.Tracer.Warn(System.DateTime.Now.ToString("yyyy-MM-dd") + " : " + "释放ObjectContext");
        //    string threadName = Thread.CurrentThread.Name;
        //    if (threadName == null || !dictionaryThread.ContainsKey(threadName))
        //    {
        //        return;
        //    }

        //    List<object> list = dictionaryThread[threadName];
        //    list.Remove(obj);
        //    if (list.Count == 0)
        //    {
        //        dictionaryThread.Remove(threadName);
        //        TM_SaaS_OA_EFModelContext tempDC = contenxtCache[threadName];
        //        tempDC.Dispose();
        //        GC.SuppressFinalize(tempDC);
        //        tempDC = null;
        //        contenxtCache.Remove(threadName);
        //        Thread.CurrentThread.Name = null;
        //        SMT.Foundation.Log.Tracer.Warn("UnregisterObj, 释放:" + threadName);
        //    }

        //}

        //public static string ManualRegister()
        //{
        //    lock (lockObj)
        //    {
        //        string threadName = Thread.CurrentThread.Name;
        //        if (string.IsNullOrEmpty(threadName))
        //        {
        //            threadName = Guid.NewGuid().ToString();
        //            Thread.CurrentThread.Name = threadName;
        //        }

        //        if (!contenxtCache.ContainsKey(threadName))
        //        {
        //            TM_SaaS_OA_EFModelContext dbinstance = new TM_SaaS_OA_EFModelContext();
        //            dbinstance.CommandTimeout = 180;
        //            contenxtCache.Add(threadName, dbinstance);
        //        }
        //        return threadName;
        //    }

        //}

        //public static void ManualUnRegister(string threadName)
        //{
        //    lock (lockObj)
        //    {
        //        if (contenxtCache.ContainsKey(threadName))
        //        {
        //            TM_SaaS_OA_EFModelContext tempDC = contenxtCache[threadName];
        //            //if (tempDC.Connection.State == System.Data.ConnectionState.Open)
        //            //{
        //            //    tempDC.Connection.Close();
        //            //}

        //            contenxtCache.Remove(threadName);
        //            GC.SuppressFinalize(tempDC);

        //        }
        //    }
        //}

        #region 事务中不嵌套事务
        public static DbTransaction BeginTransaction(TM_SaaS_OA_EFModelContext mc)
        {
            //string threadName = Thread.CurrentThread.Name;
            //if (transactionList.Contains(threadName))
            //{
            //    return null;
            //}
            //transactionList.Add(threadName);
            if (mc.Connection.State == System.Data.ConnectionState.Closed)
            {
                mc.Connection.Open();
            }
            DbTransaction dbt = mc.Connection.BeginTransaction();

            return(dbt);
        }
Beispiel #2
0
        public static void Main(){
            using (TM_SaaS_OA_EFModelContext context = new TM_SaaS_OA_EFModelContext())
            {
                var q = from ent in context.T_SYS_FILELIST
                        select ent;
                if (q.Count() > 0)
                {

                }



                T_SYS_FILELIST file = new T_SYS_FILELIST();
                file.SMTFILELISTID = Guid.NewGuid().ToString();
                file.FILENAME = "test";
                context.AddToT_SYS_FILELIST(file);
                context.SaveChanges();
            }
        }
Beispiel #3
0
        /// <summary>
        /// 删除实体
        /// </summary>
        /// <param name="url">路径如:\SMT\OA\TaskManager\2010122303190771495486.txt</param>
        /// <returns></returns>
        public int DeleteEntityByUrl(string url)
        {
            int result = 0;

            #region  除从表
            TM_SaaS_OA_EFModelContext edc = new TM_SaaS_OA_EFModelContext();
            var entity = from det in edc.T_SYS_FILELIST
                         where det.FILEURL == url
                         select det; //找出原有的实体
            if (entity.Count() > 0)
            {
                var det = entity.FirstOrDefault();
                //DataContext.DeleteObject(det);
                //result = DataContext.SaveChanges();
                edc.DeleteObject(det);
                result = edc.SaveChanges();
            }
            return(result > 0 ? 1 : 0);

            #endregion
        }
Beispiel #4
0
        /// <summary>
        /// 增加实体
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        public int AddEntity(T_SYS_FILELIST entity)
        {
            int result = 0;

            #region
            try
            {
                if (entity != null)
                {
                    entity.CREATETIME = System.DateTime.Now;
                    TM_SaaS_OA_EFModel.TM_SaaS_OA_EFModelContext edc = new TM_SaaS_OA_EFModelContext();
                    edc.AddToT_SYS_FILELIST(entity);
                    result = edc.SaveChanges();
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
            return(result > 0 ? 1 : 0);

            #endregion
        }
Beispiel #5
0
        private void test(){
            using (TM_SaaS_OA_EFModelContext context = new TM_SaaS_OA_EFModelContext())
            {

            }
        }
Beispiel #6
0
        //static DBContext()
        //{
        //    contenxtCache = new Dictionary<string, TM_SaaS_OA_EFModelContext>();
        //    dictionaryThread = new Dictionary<string, List<object>>();
        //    dictionaryThread_Te = new Dictionary<object, string>();
        //    transactionList = new List<string>();
        //}
        ////public static Dictionary<string, TM_SaaS_OA_EFModelContext> contenxtCache;
        //public static Dictionary<string, List<object>> dictionaryThread;
        //public static Dictionary<object, string> dictionaryThread_Te;
        //public static List<string> transactionList;
        //private static object lockObj = new object();

        //public static TM_SaaS_OA_EFModelContext CreateObjectContext()
        //{
        //    return new TM_SaaS_OA_EFModelContext();
        //}
        //public static TM_SaaS_OA_EFModelContext GetObjectContext(object obj)
        //{
        //    TM_SaaS_OA_EFModelContext dbinstance = new TM_SaaS_OA_EFModelContext();
        //    //string threadName = Thread.CurrentThread.Name;
        //    //if (threadName!= null &&  contenxtCache.ContainsKey(threadName))
        //    //{
        //    //    dbinstance = contenxtCache[threadName];
        //    //}
        //    //else
        //    //{
        //    //    if (threadName == null)
        //    //    {
        //    //        threadName = Guid.NewGuid().ToString();
        //    //        Thread.CurrentThread.Name = threadName;
        //    //    }
        //    //    dbinstance = new TM_SaaS_OA_EFModelContext();
        //    //    dbinstance.CommandTimeout = 180;
        //    //    //db.Log = Console.Out;
        //    //    //dbinstance.Log = Console.Out;
        //    //    //dbinstance.ObjectTrackingEnabled = false;
        //    //    contenxtCache.Add(threadName, dbinstance);
                
        //    //}
        //    //RegisterObj(obj);
        //    return dbinstance;
        //}

        //public static TM_SaaS_OA_EFModelContext GetObjectContext()
        //{
        //    //string threadName = Thread.CurrentThread.Name;
        //    //if (threadName != null)
        //    //{
        //    //    return contenxtCache[threadName];
        //    //}
        //    //else
        //    //{
        //        return new TM_SaaS_OA_EFModelContext();
        //    //}
        //}

        //private static void RegisterObj(object obj)
        //{
        //    string threadName = Thread.CurrentThread.Name;
        //    List<object> list = null;
        //    if (dictionaryThread.ContainsKey(threadName))
        //    {
        //        list = dictionaryThread[threadName];
        //    }
        //    else
        //    {
        //        list = new List<object>();
        //        dictionaryThread.Add(threadName, list);
        //    }
        //    list.Add(obj);
        //}

        //public static void UnregisterObj(object obj)
        //{
        //   //  SMT.Foundation.Log.Tracer.Warn(System.DateTime.Now.ToString("yyyy-MM-dd") + " : " + "释放ObjectContext");
        //    string threadName = Thread.CurrentThread.Name;
        //    if (threadName == null || !dictionaryThread.ContainsKey(threadName))
        //    {
        //        return;
        //    }

        //    List<object> list = dictionaryThread[threadName];
        //    list.Remove(obj);
        //    if (list.Count == 0)
        //    {
        //        dictionaryThread.Remove(threadName);
        //        TM_SaaS_OA_EFModelContext tempDC = contenxtCache[threadName];
        //        tempDC.Dispose();
        //        GC.SuppressFinalize(tempDC);
        //        tempDC = null;
        //        contenxtCache.Remove(threadName);
        //        Thread.CurrentThread.Name = null;
        //        SMT.Foundation.Log.Tracer.Warn("UnregisterObj, 释放:" + threadName);
        //    }

        //}

        //public static string ManualRegister()
        //{
        //    lock (lockObj)
        //    {
        //        string threadName = Thread.CurrentThread.Name;
        //        if (string.IsNullOrEmpty(threadName))
        //        {
        //            threadName = Guid.NewGuid().ToString();
        //            Thread.CurrentThread.Name = threadName;
        //        }

        //        if (!contenxtCache.ContainsKey(threadName))
        //        {
        //            TM_SaaS_OA_EFModelContext dbinstance = new TM_SaaS_OA_EFModelContext();
        //            dbinstance.CommandTimeout = 180;
        //            contenxtCache.Add(threadName, dbinstance);
        //        }
        //        return threadName;
        //    }
            
        //}

        //public static void ManualUnRegister(string threadName)
        //{
        //    lock (lockObj)
        //    {
        //        if (contenxtCache.ContainsKey(threadName))
        //        {
        //            TM_SaaS_OA_EFModelContext tempDC = contenxtCache[threadName];
        //            //if (tempDC.Connection.State == System.Data.ConnectionState.Open)
        //            //{
        //            //    tempDC.Connection.Close();
        //            //}
                    
        //            contenxtCache.Remove(threadName);
        //            GC.SuppressFinalize(tempDC);
                    
        //        }
        //    }
        //}

        #region 事务中不嵌套事务
        public static DbTransaction BeginTransaction(TM_SaaS_OA_EFModelContext mc)
        {
            //string threadName = Thread.CurrentThread.Name;
            //if (transactionList.Contains(threadName))
            //{
            //    return null;
            //}
            //transactionList.Add(threadName);
            if (mc.Connection.State == System.Data.ConnectionState.Closed)
            {
                mc.Connection.Open();
            }
            DbTransaction dbt = mc.Connection.BeginTransaction();
            return dbt;
        }
Beispiel #7
0
 public BaseDAL(bool isSolo)
 {
     _lbc = new TM_SaaS_OA_EFModelContext();
 }