博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  架构研究

摘要:昨天我们一直在做准备工作,最终表单数据需要从数据库里提取,并保存到数据库,今天接着介绍如何做提取、保存和验证。 四、提取并显示信息 在EditForm我们定义一个InfoId属性,用于接收在列表页面打开编辑窗体时传递主键,然后编辑窗体通过主键查询实体,最终填充到映射好的控件上。 /// /// 获取或设置信息ID,根据此ID查询实体并填充在窗体上。 /// public string InfoId { get; set; } 在窗体的Load事件中,判断InfoId是否为空,如果不空则查询出实体对象,将数据填充到各控件。 ... 阅读全文

posted @ 2013-12-10 00:23 faib 阅读(1577) 评论(2) 推荐(1) 编辑

摘要:好久好久没有露面了,呵呵,对于写文章都有点生疏了。 在拿到任何一个项目,不管是b/s的还是c/s,我不会立即开始写代码,我一般会为使这些项目能够快速开发制定一系列的支持组件,虽然可能前期会付出一些代价,但不管是应付当前的任务,还是为以后形成一种可持续改进的开发模式,都是有意义的。 最近几年都忙于应付b/s方面的项目,所以winform的一些东西已经不是怎么拿得出手了,虽然以前也写过一系列的组件,毕竟技术革新太快了,现在已经不太适应了。 今天介绍的只是一小部份,主要实现信息编辑窗体中各控件与数据属性之间的绑定、取值与存值、数据验证。 大家知道,这种小型的MIS项目最繁琐的莫过于编辑页面的布局,. 阅读全文

posted @ 2013-12-09 01:29 faib 阅读(3426) 评论(5) 推荐(2) 编辑

摘要:今天发布 Fireasy.Data 的第一个测试版本,以下是各组件的版本号: Fireasy.Common 1.5.40.41422 Fireasy.Data 1.5.40.41440 Fireasy.Data.Entity 1.5.40.41450 目前支持 MsSqlServer、Oracle、SQLite和MySql四种数据库。 以下是本测试版本各测试类的名称: BackupTests 数据库备份测试 BatcherTests 数据批量插入测试 DatabaseFactoryTests 数据库实例工厂测试 DatabaseScopeTests 数据库Scope测试 Database... 阅读全文

posted @ 2012-07-04 22:51 faib 阅读(874) 评论(4) 推荐(0) 编辑

摘要:在前面的一篇文章中,提到 IProviderService 接口的时候,我们附加了一个 ProviderContext,该对象中仅包含了一个当前的 IDatabase。因为在使用插件的时候,或多或少会用到 IDatabase 来进行处理。 但是,这感觉这是个累赘,也不雅观,本篇期望达到的目的是,在定义一个IDatabase的变量域范围内,任何代码都能够通过一个静态方法就能够获取到 IDatabase,而无需将 IDatabase带着满街跑。 借助TransactionScope的思想,来实现一个 DatabaseScope,目的就是解决 IDatabase 的传递问题。 一、Scope< 阅读全文

posted @ 2012-06-02 01:26 faib 阅读(1095) 评论(2) 推荐(1) 编辑

摘要:在Ado.Net中,DbConnection类的GetSchema方法用于获取数据库提供者的相关架构信息,比如数据类型、表、列等等,然而每种数据库架构的元数据结构都是不一样的。Fireasy.Data提供了一个扩展服务接口,以将四类数据库的架构信息整合在一起,统一定义了最大公有的架构元数据,并在此基础上提供Linq查询的支持。 一、架构元数据的接口 由于要使用统一的查询,因此需要定义一个标识接口,然后使不同的架构元数据类来实现它。///<summary>///数据库架构元数据结构。///</summary>publicinterfaceISchemaMetadata{} 阅读全文

posted @ 2012-04-22 00:28 faib 阅读(1205) 评论(0) 推荐(0) 编辑

摘要:前面已经介绍了,IProvider提供了一种插件式的服务接口,能够将一些扩展的功能附加在提供者中,因为IProvider由IDatabase所引用,因此,只要有IDatabase,就能够获得所有的扩展功能,那么本篇将介绍一下这些扩展服务如何与IProvider一起工作。 首先看一下IProvider接口的定义:///<summary>///为不同的数据库类型提供创建工厂及插件服务。///</summary>publicinterfaceIProvider{///<summary>///获取提供者类型。///</summary>ProviderTy 阅读全文

posted @ 2012-04-19 00:54 faib 阅读(1381) 评论(0) 推荐(0) 编辑

摘要:在之前只知道SqlServer支持数据批量插入,殊不知道Oracle、SQLite和MySql也是支持的,不过Oracle需要使用Orace.DataAccess驱动,今天就贴出几种数据库的批量插入解决方法。 首先说一下,IProvider里有一个用于实现批量插入的插件服务接口IBatcherProvider,此接口在前一篇文章中已经提到过了。///<summary>///提供数据批量处理的方法。///</summary>publicinterfaceIBatcherProvider:IProviderService{///<summary>///将< 阅读全文

posted @ 2012-04-18 23:39 faib 阅读(2468) 评论(6) 推荐(3) 编辑

摘要:Fireasy.Data的一个主要接口是IDatabase,这个与网上流传的SqlHelper差不多是完成一样的操作。不过,在IDatabase中只提供了几个高内聚的方法,你不必去传递那些DbCommand和DbParameter。不同的数据库类型,都提供实现IProvider接口的类,来指定DbProviderFactory,以及各种的IProviderService组合来实现更多的功能。 下面先来看一下有关IDatabase及周围的一些接口组合: 1、IDatabase接口 在Fireasy.Data中,IDatabase是最底层的接口,它提供了以下几个属性和方法: Connection. 阅读全文

posted @ 2012-04-18 21:49 faib 阅读(2442) 评论(2) 推荐(1) 编辑