首页 / 软件开发 / .NET编程技术 / Enterprise Library(企业库)给我们提供的ORM
Enterprise Library(企业库)给我们提供的ORM2010-12-24 博客园 virus1 引言本文的使用的实例数据库为:Northwind企业库版本:V5.0下面的例子均在ASP.NET中进行演示。ORM,Object Relation Mapper,主要是说我们的,尤其是我们使用 面向对象编程语言的时候,都在使用对象,实体,Object,对象之间用属性来维 护数据关系。也就是1:n,n:1,1:1,n:n等等。在配合数据库开发的时候,使用的 大多是关系型数据库,关系型数据库靠关系Relation来维护数据,表现形式就是 二维的数据表。对象和关系不是一一映射的关系。就好像一张数据库的表,这样一个二维关 系,映射为C#中的对象的话,可能是多个对象。还有可能几张表映射为一个对象 。很少有一张表映射为一个对象。因为类的设计和数据库表的设计不是一种思路 ,他们的规范也不尽相同。这时候就引出了ORM,对象和关系之间的映射。如何更好的映射?都是很多人 研究的课题。我也写过一篇文章,讨论过一种实现方法。大多数的方法都是利用 列名和属性名来实现映射。其实在企业库中,至少是在V5.0中就存在这样的映射辅助类,今天就让我们 来看看企业库中提供给我们的ORM映射工具。2 正文2.1 简单应用在web.config文件中添加下面的配置代码<configSections>
<section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.Databas eSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" />
</configSections>
<dataConfiguration defaultDatabase="sql2005dev" >
</dataConfiguration>
<connectionStrings>
<add name="sql2005dev" connectionString="server=KB- SHIWENBINSQL2005DEV;database=northwind;uid=sa;pwd=123.com" providerName="System.Data.SqlClient"/>
</connectionStrings>
在一个页面的后台代码中敲下如下面的代码代码Database db=DatabaseFactory.CreateDatabase ();
IRowMapper<Customer> mapper = MapBuilder<Customer>.BuildAllProperties () ;
var accessor = db.CreateSprocAccessor<Customer>("GetAllFromCustomers");
var customerData = accessor.Execute();
foreach (var c in customerData)
{
Response.Write (c.CompanyName);
Response.Write ("</br>");
}