发布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 @   Teddy's Knowledge Base  Views(1887)  Comments(9Edit  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端
点击右上角即可分享
微信分享提示