zoukankan      html  css  js  c++  java
  • Entity Framework公共的增删改方法

    using System;
    using System.Collections.Generic;
    using System.Data.Entity;
    using System.Data.Entity.Infrastructure;
    
    namespace My
    {
        /// <summary> Entity Framework公共的增删改方法。返回的是受影响的行数 </summary>
        public class PublicStore
        {
           //新增
           public static int InsertObject(object obj)
            {
                Type t = obj.GetType();
                int effect = -1;
                using (MyContext con = new MyContext())
                {
                    DbSet set = con.Set(t);
                    set.Add(obj);
                    effect = con.SaveChanges();
                    return effect;
                }
            }
            
            //批量新增
            public static int InsertObjects(IEnumerable<object> objs)
            {
                int effect = 0;
    
                var et = objs.GetEnumerator();
                if (et.MoveNext())
                {
                    Type t = et.Current.GetType();
                    using (MyContext con = new MyContext())
                    {
                        DbSet set = con.Set(t);
                        foreach (var o in objs)
                        {
                            set.Add(o);
                        }
                        effect = con.SaveChanges();
                    }
                }
    
                return effect;
            }
            
            //修改
            public static int ModifyObject(object obj)
            {
                int effect = -1;
                using (MyContext con = new MyContext())
                {
                    DbEntityEntry entry = con.Entry(obj);
                    entry.State = System.Data.EntityState.Modified;
                    effect = con.SaveChanges();
                    return effect;
                }
            }
    
            //批量修改
            public static int ModifyObjects(IEnumerable<object> objs)
            {
                int effect = 0;
                var et = objs.GetEnumerator();
                if (et.MoveNext())
                {
                    Type t = et.Current.GetType();
                    using (MyContext con = new MyContext())
                    {
                        foreach (var o in objs)
                        {
                            DbEntityEntry entry = con.Entry(o);
                            entry.State = System.Data.EntityState.Modified;
                        }
                        effect = con.SaveChanges();
                    }
                }
    
                return effect;
            }
            
            //删除
            public static int DeleteObject(object obj)
            {
                int effect = -1;
                using (MyContext con = new MyContext())
                {
                    DbEntityEntry entry = con.Entry(obj);
                    entry.State = System.Data.EntityState.Deleted;
                    effect = con.SaveChanges();
                    return effect;
                }
            }
            
            //批量删除
            public static int DeleteObjects(IEnumerable<object> objs)
            {
                int effect = 0;
    
                var et = objs.GetEnumerator();
                if (et.MoveNext())
                {
                    Type t = et.Current.GetType();
                    using (MyContext con = new MyContext())
                    {
                        foreach (var o in objs)
                        {
                            DbEntityEntry entry = con.Entry(o);
                            entry.State = System.Data.EntityState.Deleted;
                        }
                        effect = con.SaveChanges();
                    }
                }
                return effect;
            }
        }
    }
  • 相关阅读:
    【算法每日一练】LeetCode02 两数之和
    【算法每日一练】LeetCode01 两数之和
    【算法题】09-单链表翻转
    【算法题】08- 构造数组的MaxTree
    【算法题】07-生成窗口最大值数组
    【算法题】06-用栈来解决汉诺塔问题
    【算法题】05-用一个栈实现另一个栈的排序
    【算法题】04-猫狗队列
    【算法题】03-使用递归和栈逆序一个栈
    【算法题】02-使用两个栈实现队列额的功能
  • 原文地址:https://www.cnblogs.com/gossip/p/3831770.html
Copyright © 2011-2022 走看看