今天,学了一个名叫Entity Framework的框架,用了之后真心感觉非常好用,大大增加了项目开发的效率。废话不多说,接下来我们就来了解一下什么是EF吧。
Entity Framework 利用了抽象化数据结构的方式,将每个数据库对象都转换成应用程序对象 (entity),而数据字段都转换为属性 (property),关系则转换为结合属性 (association),让数据库的 E/R 模型完全的转成对象模型,也就是说数据库中的东西你都可以直接调用,而且也省略了编写SQL语句的时间,大大减少了代码的长度。
下面就演示一下新建EF的过程:
首先是在DAL层选择添加->新建项->数据->ADO.NET尸体数据模型
确定之后,选择从数据库生成,当然也可以选择空模型,空模型是新建类和对象,在自动生成相应的数据库,这里介绍的是前一种。
选择相应的数据库,下一步就是勾选所需的表,
完成之后会生成如下一些东西
APP.config 是配置数据库连接字符窜的地方,web.config中的连接字符串要和APP.comfig中的相同,不然会报错,其它的基本都是不需要动的,这些弄好之后就可以在数据访问层(DAL)开始写代码了。
public login getEF(int id)
{
login login = null;
using (LoginEntities1 logE = new LoginEntities1())
{ login = logE.login.SingleOrDefault(m=> m.Id == id); }
return login;
}
这个例子和上一篇是一样的都是登陆程序,除了DAL中的代码不同,且少了Enitity层,其它的代码都是一样的。现在就来看看两者的差距。
string connection = ConfigurationManager.ConnectionStrings["Login"].ConnectionString;
public log GetId(int Id)
{
log login = null;
string sql = "select * from login where Id=@Id";
SqlParameter pa = new SqlParameter("@Id", Id);
using (SqlDataReader sdr = SqlHelper.ExecuteReader(this.connection, CommandType.Text, sql, pa))
{
if (sdr.Read())
{
login = new log();
login.Id = Convert.ToInt32(sdr["Id"]);
login.Password = Convert.ToInt32(sdr["Password"]);
}
}
return login;
}
虽然咋看之下差不了几行,但这只是一个非常简单的小程序而已,如果是一个很大的项目呢,你可以试想一下,它可以给你省掉多少时间。