发布NBearV3.1.7,包含重要升级内容:强类型实体集合、Gateway缓存等

下载新版本:http://sf.net/projects/nbear

简单说明一下本次升级可能导致的额外代码修改:
 
1、强类型实体集合
 
新增的强类型实体集合会将设计实体中的Domain[] Domains这样的数组形式的关联属性,生成为最终实体中的DomainArrayList Domains属性。
 
每一个实体,如Domain都会多生成一个形如DomainArrayList的集合类型,使用该集合可以添加、删除、清空关联到属性的对象。当属性设置Contained时,和原来使用Domain[] Domains一样,能够自动级联更新/删除。原来的Entity.AddArrayItem/RemoveArrayItem等方法已经删除。
 
2、为Gateway新增简单的缓存支持。可以以如下格式配置config文件,注意cacheConfig配置节。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="entityConfig" type="NBear.Common.EntityConfigurationSection, NBear.Common" />
    <section name="cacheConfig" type="NBear.Data.CacheConfigurationSection, NBear.Data" />
  </configSections>
  <entityConfig>
    <includes>
      <add key="Sample" value="C:\Teddy\NBearV3\src\NBear.Test.UnitTests\EntityConfig.xml" />
    </includes>
  </entityConfig>
  <cacheConfig enable="true">
    <cachingTables>
      <add key="Northwind.Orders" value="5" />
    </cachingTables>
  </cacheConfig>
  <connectionStrings>
    <add name="Northwind" connectionString="Server=(local);Database=Northwind;Uid=sa;Pwd=sa" providerName="NBear.Data.SqlServer.SqlDbProvider"/>
  </connectionStrings>
</configuration>
 
这里的每一项add可以指定一个数据库表或存储过程的名称和缓存的时间(单位:秒)。
 
例如,Northwind.Orders中,Northwind表示对应的ConnectionString配置节的名称,Orders是数据库中的表名(注意是表名而不是实体类的名称)或存储过程名称。
 
当如上配置后,默认的以Northwind这个ConnectionString初始化的Gateway实例将是自动开启了读缓存支持的。可以使用Gateway.TurnOnCache()/TurnOffCache()方法改变当前Gateway实例是否使用缓存。
 
一般来讲,对于每一个ConnectionString,我们可以实例化两个Gateway,一个专门用于有缓存的读数据,另一个用于无缓存的读数据。另一方面,无论是否开启缓存支持,对于写操作没有影响。
 
3、Entity.EntityArrayToDataTable()现在支持输入一个空数组或者null返回一个只包含实体结构的空的DataTable实例。
 
//本文结束
posted @ 2006-11-10 12:12  Teddy's Knowledge Base  Views(1880)  Comments(9Edit  收藏  举报