# Rainr.EFClient **Repository Path**: bjmck/Rainr.EFClient ## Basic Information - **Project Name**: Rainr.EFClient - **Description**: [C#] 封装的EntityFramework简单操作类库。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2015-05-22 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #Rainr.EFClient 描述: 对EF的简单封装,可实现简单快捷的对象操作。 事例: /* 实体类 */ public class TestUser { public int Id { get; set; } public string Name { get; set; } public int Age { get; set; } } /* 数据上下文 */ public class TestContext : DbContext { public TestContext() : base("TextConnection") { } public DbSet TestUser { get; set; } //确保名称和类别一致,如果不一致无法更新非代理对象 } /* 使用演示 */ class Program { static void Main(string[] args) { //访问者 DbAccessor accessor = new DbAccessor(); // == accessor = DbAccessor.NewAccessor(); //-----查询------// TestUser selectUser = null; List selectUsers = null; //根据主键值查询单个对象 selectUser = accessor.SelectByKey(1); //根据参数查询单个对象 selectUser = accessor.Select(u => u.Id == 1); //查询多个对象 selectUsers = accessor.Selects().ToList(); //根据参数查询多个对象 selectUsers = accessor.Selects(u => u.Id > 0 && u.Name == "testName").ToList(); //无跟踪,排序,分页,查询多个对象 int rowTotal = 0; selectUsers = accessor.Selects(u => u.Id > 0).OrderBy("Id").Pagination(1, 20, out rowTotal).AsNoTracking().ToList(); //-----插入------// TestUser insertUser = new TestUser() { Name = "insert.." }; //插入对象 accessor.Insert(insertUser); //-----更新------// TestUser updateProxyUser = accessor.SelectByKey(1); TestUser updateUser = new TestUser() { Id = 1, Name = "uuuuu" }; //更新代理对象 accessor.Update(updateProxyUser); //更新非代理对象 accessor.Update(updateUser); //更新对象某些属性 accessor.UpdateProperty(updateUser, "Name", "Age");//..可指定多个 //更新对象属性排除某些属性 accessor.UpdatePropertyExcluded(updateUser, "Name", "Age");//..可指定多个 //-----删除------// TestUser deleteProxyUser = accessor.SelectByKey(1); TestUser deleteUser = new TestUser() { Id = 1, Name = "dddd" }; //根据主键删除对象 accessor.DeleteByKey(1); //删除代理对象 accessor.Delete(deleteProxyUser); //删除非代理对象 accessor.Delete(deleteUser); //-----直接Linq 操作------// var linqUsers = (from users in accessor.Context.TestUser select users); //-----事务------// //开始事务 accessor.BeginTransaction(); //中间多个 操作。。。。 //提交事务 accessor.SubmitTransaction(); //-----分布式事务:有待测试------// DbAccessor accessone = new DbAccessor(); DbAccessor accesstwo = new DbAccessor(); DbAccessorTransaction dba = new DbAccessorTransaction(); dba.EnlistAccessor>(accessone);//加入访问第一个数据库的访问器 dba.EnlistAccessor>(accesstwo);//加入访问别的数据库的访问器 dba.SubmitTransaction();//提交分布式事务 }