首页 > 代码库 > 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和单元测试(一)