1

我有一个当前连接到数据库的应用程序。但我有一个计划将这个数据库中的数据切片到多个数据库。

例如,我在表 Test_Table_1 中有 10,000 条记录,现在它位于唯一的一个数据库中。现在,我想将该数据库中的 5,000 条记录移动到具有相同表名的新数据库中。因此,我将有 2 个数据库,原来的数据库将包含前 5,000 条记录,而新的数据中心将包含其余的(5,000 条记录)。

挑战在于应用程序。我需要通过从配置文件中读取配置值来更新它,以检查它将连接到哪个数据中心。

以下是我的问题:

  1. CSLA.NET 是解决这个问题的正确方法吗?
  2. CSLA.NET 上是否有允许我在其中一个数据中心死机时在数据中心之间切换的功能?
4

2 回答 2

2

CSLA 不是数据访问框架或 ORM,它是一个业务层框架。

它确实抽象了数据库的概念,使您的业务层可以使用来自多个数据库的数据。

与数据库的交互是您的数据访问层 (DAL) 的责任。CSLA 提供了一些高级功能,因此它以一致的方式调用您的 DAL,但实现 DAL 取决于您。

在构建包含来自多个数据库的数据的业务域对象时,一个重要的考虑因素是,如果用户保存对象的数据,则通常需要每个数据库表中的键值来执行任何数据库更新。因此,您应该期望将这些键值存储在您的业务对象中(可能作为私有属性)。对于时间戳等并发值也是如此。

于 2013-04-09T16:24:58.357 回答
0

CSLA 不是数据访问框架。它提供了抽象数据访问实现的业务对象方法。但是您仍然必须使用 ADO .NET/某种 ORM/等来实现数据访问层。

我会研究 NHibernate 和 Shards 包。

http://nhforge.org/

http://nuget.org/packages/NHibernate.Shards/

于 2013-04-08T00:53:19.457 回答