全部博文(372)
2012年(372)
分类: 虚拟化
2012-03-21 16:51:54
而是直接通过EF生成数据模型 对数据实体的操作,这里当然就必须用到linq,对于linq 大家一定很熟了,这里就没必要
多说。。那么我们是如何构建EF的呢?
下面给大家贴图比较好理解
先建一个解决方案 ,然后添加一个EF实体对象模型:
选则 ado.net entity data model 这一项。
然后选择第一项,注意一般都选第一项,第二项是一个空的。继续下一步。
然后连接服务器地址,选择数据库。点击ok。然后下一步
选择需要的table ,view 和存储过程。
然后点击finish
这样就将EF建好了。对应的数据库,表都映射到EF实体模型中了。。
下面,看我们应该如何用EF 而不是写繁杂的Sql语句了。
一.1先建立数据库中对应的实体类。
如:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;
namespace EF.Model
{
[DataContract]
[Serializable]
public class RoleModel
{
public RoleModel()
{}
#region 属性
///
/// 角色编号
///
[DataMember]
public int RoleID
{
get;
set;
}
///
/// 名称
///
[DataMember]
public string Name
{
get;
set;
}
///
/// 角色描述
///
[DataMember]
public string Description
{
get;
set;
}
///
/// 2的指数
///
[DataMember]
public int Code
{
get;
set;
}
///
///
///
[DataMember]
public bool? IsDelete
{
get;
set;
}
///
/// 创建时间
///
[DataMember]
public DateTime? CreateTime
{
get;
set;
}
///
/// 更新时间
///
[DataMember]
public DateTime? UpdateTime
{
get;
set;
}
#endregion
}
} |
实体类建好了 ,我们最想看到的就该出来了。
下面是如何用EF 对数据增删查改的操作:
1.对数据的读取操作
public RoleModel GetRole(int roleID)
{
RoleModel model = null;
using(Entities db = new Entities())
{
try{
Role role = db.Role.FirstOrDefault(item => item.RoleID == roleID && item.IsDelete == false);
if(role != null)
{
model = new RoleModel();
model.RoleID = role.RoleID;
model.Name = role.Name;
model.Description = role.Description;
model.Code = role.Code;
model.IsDelete = role.IsDelete;
model.CreateTime = role.CreateTime;
model.UpdateTime = role.UpdateTime;
}
}
catch (Exception ex)
{
throw new Exception(ex.message);
}
}
return model;
} |
2. 添加
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 |
public ResultEnum AddRole(RoleModel model,out int roleID)
{
ResultEnum result = ResultEnum.Failure;
roleID=0;
using(MEntities db = new Entities())
{
try{
Role role = new Role();
role.Name = model.Name;
role.Description = model.Description;
role.Code = model.Code;
role.IsDelete = model.IsDelete;
role.CreateTime = model.CreateTime;
role.UpdateTime = model.UpdateTime;
db.AddToRole(role);
if(db.SaveChanges()>0)
{
roleID=role.RoleID;
result = ResultEnum.Success;
}
}
catch (Exception ex)
{
throw new Exception(ex.message);
}
return result;
}
} |
3.更新数据
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 |
public ResultEnum UpdateRole(RoleModel model)
{
ResultEnum result = ResultEnum.Failure;
using(Entities db = new Entities())
{
try{
Role role = db.Role.FirstOrDefault(item=>item.RoleID == model.RoleID);
if(role != null)
{
role.Name = model.Name;
role.Description = model.Description;
role.Code = model.Code;
role.IsDelete = model.IsDelete;
role.CreateTime = model.CreateTime;
role.UpdateTime = model.UpdateTime;
if(db.SaveChanges()>0)
{
result = ResultEnum.Success;
}
}
}
catch (Exception ex)
{
result = ResultEnum.Exception;
}
}
return result;
} |
4.删除数据
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 |
public ResultEnum DelRole(int roleID)
{
ResultEnum result = ResultEnum.Failure;
using (Entities db = new Entities())
{
try
{
Role role = db.Role.FirstOrDefault(item => item.RoleID == roleID);
if (role != null)
{
db.DeleteObject(Role );
if (db.SaveChanges() > 0)
{
result = ResultEnum.Success;
}
}
}
catch (Exception ex)
{
result = ResultEnum.Exception;
}
}
return result;
} |
利用EF 多数据的增删改查 十分方便,不用我们 每天都用繁杂的sql语句,拼写sql语句也容易出现错误。
EF 功能很强大,这里就不举出来了,相信大家这篇文章对大家有帮助