该示例使用NBearLite v1.0.1.2,基于.Net PetShop 4.0的源码修改。使用NBearLite重写了等价功能的BLL、Profile、Membership模块的数据访问部分,去除了DALFacrory、IDAL等工程(因为基于NBearLite可以透明的在多种数据库源间进行无缝切换,无需修改代码),去除了Order的基于MSMQ的异步处理部分。本示例演示了使用NBearLite作为数据访问组件进行开发的常用方法。Web工程的Web.config中默认关闭了CaceDependency,并设置了Sqlite为默认数据库。
该示例支持所有NBearLite支持的数据库,包括SqlServer、Oracle、MsAccess、Sqlite、MySql和PostgreSql(示例源码中只包含了SqlServer、MsAccess和Sqlite的数据库脚本或数据库文件,如果你要在其它数据库运行,需要自己从现有的SqlServer或MsAccess数据库导出)。
下载
您可以从http://nbear.org下载最新的版本及源码。
如何安装
解压缩即可。如果您希望使用SqlServer数据库,请运行DatabaseScripts目录中的InstallDatabases.bat。
如何切换数据库源
切换数据库只需要注释掉当前的ConnectionStrings,并且取消注释您希望使用的数据库的ConnectionStrings。
使用中如发现有任何问题请在这里跟帖或给我留言,谢谢!
posted @ 2008-01-09 14:44
Teddy's Knowledge Base Views(9201)
Comments(34) Edit 收藏
Post Comment
辛苦~~,马大哥可否出一些视频,像subsonic一样,这样推广起来会比较快
@teddyma
我现在有点晕了,在利用nbear开发项目的时候,究竟是先写实体的cs来生成sqlscript,还是说先设计数据库再来生成对应的实体类?
楼主,可否出一个WinForm下的例子?注释能详细一点最好
乍看到4.0,以为NBear4.0问世了呢。
现有Nbear 3.7 使用NbearLite和NbearMaping是否性能会有提升呢?
NBearLite_v1.0.1.3.zip
编译通不过,请检查
@Leeky
编译通不过的话可能需要你自己检查一下所有工程引用的dll的路径。请引用NBearLite_lib目录中的dll后再试试编译。
@Leeky
不好意思,漏了打包MySql.Data.dll进去了。现在加上了。请重新下载一下。
新手提问:NBearLite_v1.0.1.3 和 NBear3.7 是什么关系?有何区别?
@???
NBearLite是NBearV4构架的组成部分,单独使用的话就是一个轻量级的透明支持多数据库的数据访问和映射组件。NBearV3是一个以OO为中心的,包括ORM,IOC,WEB的开发框架。NBearV4是下一代的NBear开发框架解决方案。它还会包含如IOC、代码生成、Web等其他组件。
Teddy
今天正好赶上NBearLite更新了,今夜兴奋正好研究一下,Cooool,嗷死个不错,感觉在用起来越来越像Linq了(当然MS创了新的语言元素)
GridView1.DataSource = WSData.SingletonDataBase.Select(Northwind.Products, Northwind.Products.ProductName, Northwind.Products.UnitPrice,Northwind.Suppliers.CompanyName, Northwind.Suppliers.HomePage).Join(Northwind.Suppliers,Northwind.Suppliers.SupplierID == Northwind.Products.SupplierID).OrderBy(Northwind.Products.UnitPrice.Desc, Northwind.Suppliers.CompanyName.Asc).ToDataSet().Tables[0];
还挺能干!!!
顺便问下,以后这个东西都是开源下去吧?不会哪天搞成商业的吧?
再有,NBearVx以后还有么,是不是就发展成了现在的NBearLite+NBearMapping了?
祝,越来越兴旺哦
NBearLite v1.0.1.5 打开之后生成会出错 当前上下文中不存在Check
是不是掉了哪个类,该下载哪个版本的?
@叶子绿了
遇到这样的情况请删掉website的所有reference,再手动重新添加一下,再重新编译。
因为没看到下面的回复,在NBear的远程事件上折腾了一整天也不行.
在访问报告业务对象的事件属性时,总是出下面的错误:
"System.EventHandler 无法序列化,因为它没有无参数的构造函数"
NBear缺少这么重要的特性我觉得应该在显要位置标明一下,以免更多人想我一样浪费时间走弯路.
NBear.IoC本质上是无状态的以service为单位的分布,并不是纯粹的remoting那样的有状态的分布,所以,不支持远程事件。一般,对访问远程service获得的数据,仅仅只做呈现只用,不会在服务的调用端得到某个远程调用得到的实体,在调用端写数据库的。
想请教一下问题,如果不支持远程事件,希望上层(如视图)侦听业务逻辑层的事件要怎么样实现呢?
NBearLite能否提供对SQL Server Compact Edition 2005的支持啊?
非常需要啊
@Teddy's Knowledge Base
首先感谢你强大的工具,再质问你的生成代码如何做到和数据库同步的?
因为我每修改数据库,必须重复和以前的一样的步骤生成代码,这还不算!
并且还有按顺序在每个项目中再重新编译和引用新生成的dll!
是我的做法不对? 还是其他的原因 谢谢指教!
再看NBearLite PetShop 4.0这个例子的时候
看到它将Membership进行了重写
而在WebSite的web.config配置中却只写了
<membership defaultProvider="NBearLiteMembershipProvider">
<providers>
<clear/>
<add name="NBearLiteMembershipProvider"
type="PetShop.Membership.NBearMembershipProvider, PetShop.Membership"
connectionStringName="MembershipConnString"
enablePasswordRetrieval="false" enablePasswordReset="false"
requiresUniqueEmail="false" requiresQuestionAndAnswer="false"
minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="1"
applicationName=".NET Pet Shop 4.0" hashAlgorithmType="SHA1"
passwordFormat="Hashed"/>
</providers>
</membership>
而我这样设置的话
就会出现
选定的数据存储区出现问题,原因可能是服务器名称或凭据无效,或者权限不足。也可能是未启用角色管理器功能造成的。请单击下面的按钮,以重定向到可以选
择新数据存储区的页。
下面的消息可能会有助于诊断问题: The method or operation is not implemented.
的错误
不知道该怎么办