首页 > 代码库 > OA项目CRUD和单元测试(一)
OA项目CRUD和单元测试(一)
使用ModeFirst方法生成数据库,EntityFramework5.0。
一:Model层的模型:(根据模型生成数据库)
二:Dal层的UserInfo代码:
namespace SunOA.EFDAL{ public class UserInfoDal { //crud DataModelContainer db = new DataModelContainer(); public UserInfo GetUserInfoById(int id) { return db.UserInfo.Find(id); } public List<UserInfo> GetAllUserInfo(int id) { return db.UserInfo.ToList(); } /// <summary> /// 用到的时候在去查询 IQueryable 转换成 Queryable 集合 取代上面的方法 /// </summary> /// <param name="?"></param> /// <returns></returns> public IQueryable<UserInfo> GetUsers(Expression<Func<UserInfo,bool>> whereLambda) { return db.UserInfo.Where(whereLambda).AsQueryable(); } /// <summary> /// 增加 /// </summary> /// <param name="userInfo"></param> /// <returns></returns> public UserInfo Add(UserInfo userInfo) { db.UserInfo.Add(userInfo); db.SaveChanges(); return userInfo; } /// <summary> /// 修改 /// </summary> /// <param name="userInfo"></param> /// <returns></returns> public bool Update(UserInfo userInfo) { //db.Entry(userInfo).State = EntityState.Unchanged; //上面的代码等价于下面的这个代码 // db.UserInfo.Attach(userInfo); //整体修改 db.Entry(userInfo).State = EntityState.Modified; //修改方法中的一个属性 return db.SaveChanges()>0; } /// <summary> /// 删除 /// </summary> /// <param name="userInfo"></param> /// <returns></returns> public bool Delete(UserInfo userInfo) { db.Entry(userInfo).State = EntityState.Deleted; return db.SaveChanges() > 0; } }}
单元测试:(引入Model和Dal)
namespace SunOA.UnitTest{ [TestClass, System.Runtime.InteropServices.GuidAttribute("7651815F-CEE5-4E48-9CCF-4032C79CA9B8")] public class UserInfoDalTest { [TestMethod] public void GetUsers() { //测试 获取数据的方法 UserInfoDal dal = new UserInfoDal(); //单元测试必须自己处理数据,不能依赖第三方数据 如果依赖数据那么先自己创建数据,用完之后再清除数据 for (int i = 0; i < 10; i++) { dal.Add(new UserInfo() { UName=i+"sun" }); } IQueryable<UserInfo> temp= dal.GetUsers(u => u.UName.Contains("su")); //断言 Assert.AreEqual(true, temp.Count() >= 10); } }}
执行成功数据库会插入数据:
OA项目CRUD和单元测试(一)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。