zoukankan      html  css  js  c++  java
  • Entity Framework Code First 常用方法集成

    using System;
    using System.Collections.Generic;
    using System.Data.Entity;
    using System.Linq;
    using System.Linq.Expressions;
    using System.Text;
    using SnsDB;
    using EntityFramework.Extensions;
    using EntityFramework.Reflection;
    using System.Data.SqlClient;
    using System.Transactions;
    
    namespace SnsDAL
    {
        public partial class Repository
        {
            /// <summary>
            /// 创建一条记录
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="model"></param>
            /// <returns></returns>
            public int Create<T>(T model) where T : class
            {
                int Result = 0;
                using (SnsDB_Intermodal db = new SnsDB_Intermodal())
                {
                    db.Set<T>().Add(model);
                    db.Configuration.ValidateOnSaveEnabled = false;
                    Result = db.SaveChanges();
                    db.Configuration.ValidateOnSaveEnabled = true;
                    return Result;
                }
            }
    
            /// <summary>
            /// 根据主键修改实体的全部信息
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="model"></param>
            /// <returns></returns>
            public int Update<T>(T model) where T : class
            {
                int Result = 0;
                using (SnsDB_Intermodal db = new SnsDB_Intermodal())
                {
                    if (db.Entry<T>(model).State == EntityState.Detached)
                    {
                        db.Set<T>().Attach(model);
                        db.Entry<T>(model).State = EntityState.Modified;
                    }
                    db.Configuration.ValidateOnSaveEnabled = false;
                    Result = db.SaveChanges();
                    db.Configuration.ValidateOnSaveEnabled = true;
                    return Result;
                }
            }
    
            /// <summary>
            /// 只删除一条记录
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="ids"></param>
            public int Delete<T>(Expression<Func<T, bool>> express) where T : class
            {
                using (SnsDB_Intermodal db = new SnsDB_Intermodal())
                {
                    T model = db.Set<T>().SingleOrDefault(express);
                    db.Set<T>().Remove(model);
                    return db.SaveChanges();
                }
            }
    
            /// <summary>
            /// 根据条件获取一个实体
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="express"></param>
            /// <returns></returns>
            public T GetModel<T>(Expression<Func<T, bool>> express) where T : class
            {
                using (SnsDB_Intermodal db = new SnsDB_Intermodal())
                {
                    T model = db.Set<T>().SingleOrDefault(express);
                    return model;
                }
            }
    
            /// <summary>
            /// 根据条件获取列表
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="express"></param>
            /// <returns></returns>
            public IEnumerable<T> GetList<T>(Expression<Func<T, bool>> express) where T : class
            {
                using (SnsDB_Intermodal db = new SnsDB_Intermodal())
                {
                    return db.Set<T>().Where(express).ToList();
                }
            }
    
            /// <summary>
            /// 获取列表
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <returns></returns>
            public IEnumerable<T> GetList<T>() where T : class
            {
                using (SnsDB_Intermodal db = new SnsDB_Intermodal())
                {
                    return db.Set<T>().ToList();
                }
            }
    
            /// <summary>
            /// 批量删除
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="express"></param>
            /// <returns></returns>
            public int DeleteRange<T>(Expression<Func<T, bool>> express) where T : class
            {
                int Result = 0;
                using (SnsDB_Intermodal db = new SnsDB_Intermodal())
                {
                    db.Set<T>().Where(express).Delete();
                    db.Configuration.ValidateOnSaveEnabled = false;
                    Result = db.SaveChanges();
                    db.Configuration.ValidateOnSaveEnabled = true;
                }
                return Result;
            }
    
            /// <summary>
            /// 批量添加
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="List"></param>
            /// <returns></returns>
            public int AddRange<T>(IList<T> List) where T : class
            {
                int Result = 0;
                using (SnsDB_Intermodal db = new SnsDB_Intermodal())
                {
                    db.Set<T>().AddRange(List);
                    db.Configuration.ValidateOnSaveEnabled = false;
                    Result = db.SaveChanges();
                    db.Configuration.ValidateOnSaveEnabled = true;
                }
                return Result;
            }
    
            /// <summary>
            /// 批量修改  例:xx.update(p=>p.id==1,p=>new xx{p.name="修改"});
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="where">条件</param>
            /// <param name="updateExpression">修改的内容</param>
            /// <returns></returns>
            public int UpdateRange<T>(Expression<Func<T, bool>> where, Expression<Func<T, T>> updateExpression) where T : class
            {
                int Result = 0;
                using (SnsDB_Intermodal db = new SnsDB_Intermodal())
                {
                    using (TransactionScope Transaction = new TransactionScope())
                    {
                        db.Configuration.ValidateOnSaveEnabled = false;
                        db.Set<T>().Update(where, updateExpression);
                        db.Configuration.ValidateOnSaveEnabled = true;
                        Transaction.Complete();
                        Result = 1;
                    }
                }
                return Result;
            }
    
    
            /// <summary>
            /// 执行一条sql返回list
            /// </summary>
            /// <typeparam name="T">一般为ViewModel</typeparam>
            /// <param name="strsql"></param>
            /// <returns></returns>
            public IEnumerable<T> GetList<T>(string strsql) where T:class
            {
                using (SnsDB_Intermodal db = new SnsDB_Intermodal())
                {
                    return db.Database.SqlQuery<T>(strsql);
                }
            }
    
            /// <summary>
            /// 执行一条sql返回list
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="strsql">一般为ViewModel</param>
            /// <param name="paras">参数</param>
            /// <returns></returns>
            public IEnumerable<T> GetList<T>(string strsql, SqlParameter[] paras) where T : class
            {
                using (SnsDB_Intermodal db = new SnsDB_Intermodal())
                {
                    return db.Database.SqlQuery<T>(strsql, paras);
                }
            }
    
            /// <summary>
            /// 执行一条sql返回一个对象
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="strsql"></param>
            /// <returns></returns>
            public T GetList<T>(string strsql) where T : class
            {
                using (SnsDB_Intermodal db = new SnsDB_Intermodal())
                {
                    return db.Database.SqlQuery<T>(strsql).Cast<T>().First();
                }
            }
    
            /// <summary>
            /// 执行一条sql返回一个对象
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="strsql"></param>
            /// <param name="paras">参数</param>
            /// <returns></returns>
            public T GetList<T>(string strsql,SqlParameter[] paras) where T : class
            {
                using (SnsDB_Intermodal db = new SnsDB_Intermodal())
                {
                    return db.Database.SqlQuery<T>(strsql,paras).Cast<T>().First();
                }
            }
    
            /// <summary>
            /// 执行一条sql,一般为添加或修改或删除操作
            /// </summary>
            /// <param name="strsql"></param>
            /// <returns>受影响的行数</returns>
            public int ExecuteSqlCommand(string strsql)
            {
                using (SnsDB_Intermodal db = new SnsDB_Intermodal())
                {
                    return db.Database.ExecuteSqlCommand(strsql);
                }
            }
    
            /// <summary>
            /// 执行一条sql,一般为添加或修改或删除操作
            /// </summary>
            /// <param name="strsql"></param>
            /// <param name="paras">参数</param>
            /// <returns></returns>
            public int ExecuteSqlCommand(string strsql,SqlParameter[] paras)
            {
                using (SnsDB_Intermodal db = new SnsDB_Intermodal())
                {
                    return db.Database.ExecuteSqlCommand(strsql,paras);
                }
            }
        }
    }
    

      小人技术不才,以上仅提供参考。还希望大神多多指点。
        
          再次推荐一个  ASP.NET MVC群   171560784   
           
         

  • 相关阅读:
    android AudioManager AUDIOFOCUS
    uboot环境变量实现分析
    观察者模式总结
    【BZOJ3270】博物馆 概率DP 高斯消元
    从零開始学android&lt;TabHost标签组件.二十九.&gt;
    怎样在Web项目中的service业务层获取项目根路劲
    TexturePacker 算法
    [leetCode 75] Sort Colors
    无人车可能导致器官捐献者短缺以及吸烟率下降:4星|《无人驾驶,十万亿美元的大饼怎么分?》
    如何寻找颠覆式创新的机会,《创新者的窘境》作者二十年磨一剑:4星|《与运气竞争》
  • 原文地址:https://www.cnblogs.com/kezhiping/p/3765692.html
Copyright © 2011-2022 走看看