ef 通用类
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using System.Linq;
using System.Runtime.Remoting.Contexts;
using System.Text;
using System.Threading.Tasks; namespace Domain.Infrastructure
{
public class BaseRepository<T> where T : class
{
protected CCDbContext Context = CCDbContext.Current; public virtual IQueryable<T> GetAll()
{
var ls = Context.Set<T>();
return ls;
}
public virtual IQueryable<T> GetAll(string includes)
{
if (!string.IsNullOrWhiteSpace(includes))
{
string[] ins = includes.Split(',');
DbQuery<T> query = Context.Set<T>();
foreach (string s in ins)
{
query = query.Include(s);
}
return query;
}
return Context.Set<T>();
} public void Add(T entity)
{
Context.Set<T>().Add(entity);
Context.SaveChanges();
} public virtual void Update(T entity)
{
var entry = Context.Entry(entity);
Context.Set<T>().Attach(entity);
entry.State = EntityState.Modified;
Context.SaveChanges();
} public virtual T Get(int id)
{
return Context.Set<T>().Find(new object[] { id });
} public T Get(object[] ids)
{
return Context.Set<T>().Find(ids);
} public virtual bool Del(int id)
{
var entity = Context.Set<T>().Find(new object[] { id }); if (entity == null)
return false; Context.Set<T>().Remove(entity);
Context.SaveChanges();
return true;
} public virtual bool Del(int[] ids)
{
if (ids == null || ids.Length <= )
{
return false;
}
var changed = false;
foreach (var id in ids)
{
var entity = Get(id);
if (entity != null)
{
Context.Set<T>().Remove(entity);
changed = true;
}
}
if (changed)
Context.SaveChanges(); return changed;
}
}
}
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Web;
using Domain.Course.Entry;
using Domain.User.Entry; namespace Domain.Infrastructure
{
public class CCDbContext : DbContext
{
public CCDbContext()
: base("name=conn")
{
} private static ThreadLocal<CCDbContext> _threadLocal;
private static CCDbContext _current;
public static CCDbContext Current
{
get
{
if (HttpContext.Current == null)
{
// 非 web 环境
if (_threadLocal == null)
{
_threadLocal = new ThreadLocal<CCDbContext>(() => new CCDbContext());
}
_current = _threadLocal.Value;
return _threadLocal.Value;
}
else
{
var cached = HttpContext.Current.Items["_CCDbContext"];
if (cached != null && cached is CCDbContext)
{
_current = cached as CCDbContext;
return _current;
}
else
{
var context = new CCDbContext();
HttpContext.Current.Items["_CCDbContext"] = context;
_current = context;
return context;
}
}
}
} public static void DisposeCurrent()
{
if (_current != null)
_current.Dispose();
} #region 所有实例
public DbSet<Word> Words { get; set; } public DbSet<WordTranslation> WordTranslations { get; set; } public DbSet<Language> Languages { get; set; } public DbSet<Catalog> Catalogs { get; set; } public DbSet<CatalogName> CatalogNames { get; set; } public DbSet<Term> Terms { get; set; } public DbSet<TermTranslation> TermTranslations { get; set; } public DbSet<Lesson> Lessons { get; set; } public DbSet<LessonWord> LessonWords { get; set; } public DbSet<RelevantTerm> RelevantTerms { get; set; } public DbSet<Domain.User.Entry.User> Users { get; set; } public DbSet<Group> Groups { get; set; } public DbSet<GroupTranslation> GroupTranslation { get; set; } public DbSet<TermGroup> TermGroup { get; set; } public DbSet<RelevantGroup> RelevantGroups { get; set; } public DbSet<Derivations> Derivations { get; set; } public DbSet<RelatedWord> RelatedWord { get; set; }
public DbSet<Role> Role { get; set; } public DbSet<wordsh> wordsh { get; set; }
public DbSet<shinfo> shinfo { get; set; } public DbSet<Part> Part { get; set; }
public DbSet<Radical> Radical { get; set; }
public DbSet<WordPart> WordPart { get; set; }
#endregion
}
}
ef 通用类的更多相关文章
- EF(Entity Framework)通用DBHelper通用类,增删改查以及列表
其中 通用类名:DBhelper 实体类:UserInfo 1 //新增 2 DBHelper<UserInfo> dbhelper = new DBHelper<UserInfo& ...
- EF 通用数据层类
EF 通用数据层父类方法小结 转载:http://www.cnblogs.com/yq-Hua/p/4165344.html MSSql 数据库 数据层 父类 增删改查: using System; ...
- EF通用数据层封装类(支持读写分离,一主多从)
浅谈orm 记得四年前在学校第一次接触到 Ling to Sql,那时候瞬间发现不用手写sql语句是多么的方便,后面慢慢的接触了许多orm框架,像 EF,Dapper,Hibernate,Servic ...
- 关于EF 通用增删改查的封装
1. Entity Framework是Microsoft的ORM框架,随着 Entity Framework 不断的完善强化已经到达了EF 6.0+ 还是非常的完善的,目前使用的比例相对于其他OR ...
- ASP.net如何保证EF操作类线程内唯一
说到线程内唯一,肯定会想到单例模式,但是如果多用户访问网站就会出现问题.ASP.net中有两种方法可以保证EF操作类线程内唯一(目前只会这两种,以后有好的方法再添加): 1.httpcontext(实 ...
- poi导出excel通用类
一.关键的通用类public class PoiExportUtils { private static HSSFWorkbook workBook; public PoiExportUtils ...
- NPOI MVC 模型导出Excel通用类
通用类: public enum DataTypeEnum { Int = , Float = , Double = , String = , DateTime = , Date = } public ...
- MVC NPOI Linq导出Excel通用类
之前写了一个模型导出Excel通用类,但是在实际应用中,可能不是直接导出模型,而是通过Linq查询后获取到最终结果再导出 通用类: public enum DataTypeEnum { Int = , ...
- NPOI导入导出EXCEL通用类,供参考,可直接使用在WinForm项目中
以下是NPOI导入导出EXCEL通用类,是在别人的代码上进行优化的,兼容xls与xlsx文件格式,供参考,可直接使用在WinForm项目中,由于XSSFWorkbook类型的Write方法限制,Wri ...
随机推荐
- LNMP一键安装包-CentOS/Ubuntu/Debian自动安装Nginx,MySQL,PHP
适用环境: 系统支持:CentOS.Ubuntu.Debian 内存要求:≥128M 安装了什么: 1.Nginx-1.2.1 2.MySQL 5.5.25 3.PHP 5.2.17或PHP 5.3. ...
- Springmvc之接受请求参数二
Springmvc之接受请求参数 准备工作 新建一个表单提交 请求地址: http://localhost:8080/ProjectName/user/login.do <form action ...
- Shiro整合springboot,freemaker,redis(含权限系统完整源码)
区块链技术联盟 2018-02-08 17:06:40 目录 一.导语 二.shiro功能介绍 三.shiro详解 四.shiro实战案例分享 五.系统配置 六.其他 一.导语 今天推荐给大家一个非常 ...
- Vim 中如何去掉 ^M 字符
基于 DOS/Windows 的文本文件在每一行末尾有一个 CR(回车)和 LF(换行),而 UNIX 文本只有一个换行,即win每行结尾为\r\n,而linux只有一个\n如果win下的文档上传到l ...
- MySQL 数据类型的简单选择
选择合适的数据类型:char和varchar: +---------+------------+ | char(6) | varchar(6) | +---------+------------+ | ...
- 深入理解JVM(三)——垃圾收集策略具体解释
Java虚拟机的内存模型分为五个部分.各自是:程序计数器.Java虚拟机栈.本地方法栈.堆.方法区. 这五个区域既然是存储空间,那么为了避免Java虚拟机在执行期间内存存满的情况,就必须得有一个垃圾收 ...
- 如何实现两台Domino之间的相互访问
一)交叉验证 1启动Administrator软件,连接到您的服务器,点击"配置"标签. 2点击右边屏幕"工具"--"验证字"--"交叉验证" 3选择您自己的cert.id,输入其口 ...
- nmake构建Geos库
1.下载源码包 下载地址 http://download.osgeo.org/geos/geos-3.6.1.tar.bz2 下载之后解压即可. 2.编译 geos源码包中自带了makefile.vc ...
- Samba共享及自动挂载测试
要求: 1.在server0服务器上安装配置samba,工作组为STAFF,共享目录/smb1, 共享名smb1,仅允许192.168.100.0/24网段中的主机访问.samba用户user1可以读 ...
- Ubuntu18.04, WPS表格生成中文大写数字的script
=IF(ROUND(J9,2)<0,"无效数值",IF(ROUND(J9,2)=0,"零",IF(ROUND(J9,2)<1,"" ...