Entity Framework 应用程序有以下优点:
1、应用程序可以通过更加以应用程序为中心的概念性模型(包括具有继承性、复杂成员和关系的类型)来工作。
2、应用程序不再对特定的数据引擎或存储架构具有硬编码依赖性。
3、可以在不更改应用程序代码的情况下更改概念性模型与特定于存储的架构之间的映射。
4、开发人员可以使用可映射到各种存储架构(可能在不同的数据库管理系统中实现)的一致的应用程序对象模型。
5、多个概念性模型可以映射到同一个存储架构。 · 语言集成查询支持可为查询提供针对概念性模型的编译时语法验证。
扩展资料:
实体框架(Entity Framework)是微软以ADO.Net为基础开发出来的对象关系映射(ORM)解决方案,它解决了对象持久化问题,将程序员从编写麻烦的SQL语句当中解放出来。
相对于传统的ADO等各种数据库 *** 纵技术来说,微软的ADO.Net更为先进,它封装了很多底层 *** 作,抽象了接口,针对接口编程,将调用统一化。
EF框架的应用:
首先,实在VS中建立新项,添加新建项—数据—ADO.NET实体数据模型,然后设置其自己想要的映射的数据集,设置成功后,会生成一些列文件:
如上图所示,这就是我测试用的shoppingBus数据库生成的实体映射。其中有3个重要的类,分别是:
dataModel.Context.tt下的dataModel.Context.cs类,这个类是包含的数据库的上下文关系,我当时在看的时候就想到了设计模式策略模式中的context类,我认为它们有着共同之处,都是负责数据间的交互和实现。
DataModel.tt下的数据表类,比如这里的就是pet.cs类和petType.cs类。这里就是相当于具体的实体类,值得特别说明的是,EF生成的实体映射同时包括表关系,主外键的关系等。
参考资料:
百度百科-ADO.NET Entity Framework
自定义的类 不能使用using。需要释放或者关闭的可以用using 比如
using(SqlConnection conn=new SqlConnection()){}
你只能
DashengDbContext context = new DashengDbContext()
contenxt.方法()
假设是AppSettings节点下
string connectionString=
System.Configuration.ConfigurationManager.AppSettings["RSDbContext"]
或者 直接读取xml文件 即节点add 下的属性name=RSDbContext的
模仿下面的读取xml代码
//using System.Xml/// <summary>
/// 通过键获取appSettings的值
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
public static string GetValueByKey(string key)
{
XmlDocument doc = new XmlDocument()
doc.Load(AppDomain.CurrentDomain.BaseDirectory + "config.xml")
XmlNode node = doc.DocumentElement.ChildNodes[1]
//找到appSettings节点
foreach (XmlNode childNode in node.ChildNodes)
{
if (childNode.Name == "add" && childNode.Attributes["name"] != null && childNode.Attributes["name"].InnerText == key)
{
return childNode.Attributes["connectionString"].InnerText
}
}
return ""
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)