NBear.net支持SqlServer,Oracle,MySql,PostgreSql

转载 2007年09月30日 16:59:00
NBearMapping是NBearV4框架的组件之一,可以独立使用。可用于任意类型对象、DataRow和DataReader对象间的透明映射。推荐结合NBearLite使用。

主要功能:

1、任意类型对象、DataRow和DataReader对象间的透明映射;
2、支持.NET的Nullable类型;
3、较高的性能,性能比基于Reflection的等价转换快约50%,手动代码 vs NBearMapping vs Reflection对象转换的执行时间比大约为1:2.5:3.6,可参见源码中MappingTest.TestPerformance() 测试;


源码、示例及文档下载:

NBearMapping_v1.0.0.2_beta.zip


使用演示:

 1        [TestMethod]
 2        public void TestDataRowToObject()
 3        {
 4            ObjectMapper mapper = new ObjectMapper(typeof(DataRow), typeof(User));
 5            mapper.AddCustomMappingName("UserID""ID");
 6            User user = (User)mapper.ConvertObject(table.Rows[0]);
 7            Assert.AreEqual(table.Rows[0]["UserID"], user.ID);
 8            Assert.AreEqual(table.Rows[0]["Name"], user.Name);
 9            User user2 = new User();
10            mapper.ConvertObject(table.Rows[0], user2);
11            Assert.AreEqual(table.Rows[0]["UserID"], user2.ID);
12            Assert.AreEqual(table.Rows[0]["Name"], user2.Name);   
13        }

14
15        [TestMethod]
16        public void TestDataReaderToObject()
17        {
18            ObjectMapper mapper = new ObjectMapper(typeof(IDataReader), typeof(User));
19            mapper.AddCustomMappingName("UserID""ID");
20            IDataReader reader = table.CreateDataReader();
21            reader.Read();
22            User user = (User)mapper.ConvertObject(reader);
23            Assert.AreEqual(table.Rows[0]["UserID"], user.ID);
24            Assert.AreEqual(table.Rows[0]["Name"], user.Name);
25            User user2 = new User();
26            IDataReader reader2 = table.CreateDataReader();
27            reader2.Read();
28            mapper.ConvertObject(reader2, user2);
29            Assert.AreEqual(table.Rows[0]["UserID"], user2.ID);
30            Assert.AreEqual(table.Rows[0]["Name"], user2.Name);        
31        }

32
33        [TestMethod]
34        public void ObjectToObject()
35        {
36            ObjectMapper mapper = new ObjectMapper(typeof(User), typeof(User));
37            User user = (User)mapper.ConvertObject(user3);
38            Assert.AreEqual(user3.ID, user.ID);
39            Assert.AreEqual(user3.Name, user.Name);
40            User user2 = new User();
41            mapper.ConvertObject(user3, user2);
42            Assert.AreEqual(user3.ID, user2.ID);
43            Assert.AreEqual(user3.Name, user2.Name);        
44        }

45
46        [TestMethod]
47        public void TestObjectToDataTableDataReaderAndDataRow()
48        {
49            ObjectMapper mapper = new ObjectMapper(typeof(User), typeof(DataTable));
50            mapper.AddCustomMappingName("ID""UserID");
51            DataTable userTable = (DataTable)mapper.ConvertObject(user3);
52            Assert.AreEqual(user3.ID, userTable.Rows[0]["UserID"== DBNull.Value ? null : userTable.Rows[0]["UserID"]);
53            Assert.AreEqual(user3.Name, userTable.Rows[0]["Name"]);
54            mapper.ConvertObject(user3, userTable);
55            Assert.AreEqual(user3.ID, userTable.Rows[1]["UserID"== DBNull.Value ? null : userTable.Rows[1]["UserID"]);
56            Assert.AreEqual(user3.Name, userTable.Rows[1]["Name"]);
57
58            mapper = new ObjectMapper(typeof(User), typeof(IDataReader));
59            mapper.AddCustomMappingName("ID""UserID");
60            IDataReader reader = (IDataReader)mapper.ConvertObject(user3);
61            Assert.IsNotNull(reader);
62
63            mapper = new ObjectMapper(typeof(User), typeof(DataRow));
64            mapper.AddCustomMappingName("ID""UserID");
65            DataRow row = (DataRow)mapper.ConvertObject(user3);
66            Assert.IsNotNull(row);
67        }


修订
7/26 更新至v1.0.0.1 修复1.0.0.0中的set null值的bug。

8/6 更新至v1.0.0.2 支持枚举类型字段
 

基于NBear的快速开发解决方案

基于NBear的快速开发解决方案----简介----NBear是一个.Net 2.0下的快速开发框架。它提供了包括可视化实体设计、代码生成、持久化、SOA、MVP等一系列组件。NBear的设计目...
  • teddyma
  • teddyma
  • 2007年05月18日 15:33
  • 478

对Oracle 、SQL Server、MySQL、PostgreSQL数据库优缺点分析

对Oracle 、SQL Server、MySQL、PostgreSQL数据库优缺点分析   Oracle Database Oracle Database,又名Oracle RDBMS,或简称...
  • ranran_5300
  • ranran_5300
  • 2015年08月31日 09:01
  • 7590

【Oracle】Oracle到PostgreSQL的OGG同步配置

前一阵子做的从Oracle实时同步到PostgreSQL,查到的资料很少,后经查询MOS发现有几个OGG的小版本支持Oracle到PostgreSQL的同步,过程整理后跟大家分享一下。 测试环境: O...
  • badly9
  • badly9
  • 2015年12月21日 14:58
  • 1788

微软SQL Server市场占有率超Oracle?

  • zgqtxwd
  • zgqtxwd
  • 2008年04月29日 06:08
  • 1037

SQL Server,MySQL,Oracle,PostgreSQL中常用函数用法(1)——日期操作

练习使用Hibernate没有用MySQL数据库,而是用了前不久接触的PostgreSQL,由于不同的数据对于相同的操作有各自的函数,MySQL的date_format(),在PostgreSQL中是...
  • zengchaoyue
  • zengchaoyue
  • 2012年12月05日 14:57
  • 7601

数据库笔记——Mysql、Oracle、Sqlserver || Redis、Memcached、mongoDB环境搭建

个人数据库基础笔记,将各类数据库从环境搭建到使用简单回忆整理,方便自己回顾知识点,也同大家分享下: 关系型数据库(一般基于Jdbc和Sql语法):Mysql   、Oracle 、SqlServe...
  • Zyp689
  • Zyp689
  • 2017年06月21日 19:32
  • 475

java实现兼容Oracle、mysql、SQL server数据库的链接

/*Oracle *drivername=oracle.jdbc.driver.OracleDriver *url=jdbc:oracle:thin:@127.0.0.1:1521:orcl *...
  • maiyikai
  • maiyikai
  • 2015年08月31日 21:44
  • 1080

各种数据库(MYSQL、Oracle、DB2、SQL Server、PostgreSQL)的分页查询语句

分页查询,就是将将过多的结果在有限的界面上分好多页来显示,这个是很多网站常用的功能,也是最基本的功能,今天简单总结一下。          分页以前听人们说都是一项技术,但是我觉的不尽然。我认为分页是...
  • Zhangxichao100
  • Zhangxichao100
  • 2016年05月27日 08:52
  • 2947

MySql Oracle SqlServer三大数据库的数据类型列表

http://blog.csdn.net/zztfj/article/details/6064193 MySql数据类型   数据类型 描述 字节 推荐使用 SMALLI...
  • bytxl
  • bytxl
  • 2014年02月15日 14:23
  • 1147

有for SQLServer的OGG 12C版本么?

有for SQLServer的OGG 12C版本么?
  • msdnchina
  • msdnchina
  • 2016年06月13日 22:48
  • 1414
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:NBear.net支持SqlServer,Oracle,MySql,PostgreSql
举报原因:
原因补充:

(最多只允许输入30个字)