标签:等价 技术分享 namespace data 成功 work sharp returns query
使用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);
}
}
}
执行成功数据库会插入数据:

标签:等价 技术分享 namespace data 成功 work sharp returns query
原文地址:http://www.cnblogs.com/sunliyuan/p/6390238.html