我正在使用ASP开发一个web应用程序.净3.5.该应用程序有数百个表.在一次研讨会上,我被告知应该使用一个.用于整个应用程序的DBML文件,而不是使用多个.DBML文件(stackoverflow中也有一篇帖子说了同样的话).考虑到我有这么多桌子,使用一张桌子是不可能的.DBML文件有意义,还是我最好创建多个.逻辑分组的DBML文件?

例如,我正在考虑创建以下.DBML文件:

  • 客户
  • 小贩
  • 员工
  • 销售订单

我对使用多个.DBML文件的担忧之一是如何处理跨.DBML文件的更新.例如,如果我必须在输入新销售订单时更新客户表上的字段.我该怎么处理呢?我当然不希望在客户和销售订单.DBML文件中都包含客户表.我可以将操作包装在TransactionScope中吗?

我不知道以下内容是否对答案有任何影响,但我的计划是使用存储库模式和POCO类,这样对.DBML文件中的表定义的引用将是我的数据访问层的本地引用.

谢谢

推荐答案

我必须建议您对所有表使用ONEdbml文件.

如果你试图达到join two tables from different data contexts,这会使你的代码更加复杂.这可以在simulating cross context joins之前完成,但为什么要把自己置于这种情况下呢.保持简单和直接.

此外,如果您确实决定使用2个或更多的dbml文件,并且错误地将同一个表添加到多个数据上下文中,那么您将得到"This member is defined more than once” error.

Database相关问答推荐

Postgres和Oracle之间 Select 查询的结果差异

如何替换对象数组内的数组元素

使用mongoose 在嵌套对象中查找特定字段

Active Record - 获取数据库中的第二个、第三个.. 项(无 ID)

如何使用存储在数据库表中的属性配置 Spring bean

repeating groups是什么意思?

在 sql server 中存储持续时间(时间跨度)

如何找到 Oracle 数据库的 URL?

db:schema:load vs db:migrate with capistrano

不同的数据库是否使用不同的名称引用?

PHP + SQL Server - 如何设置连接字符集?

在 SQL 中与 NULL 值连接

自动增量唯一标识符

mySQL 复制是否具有即时数据一致性?

如何通过 PHP 和 Linux 使用 pdo 连接到 mssql?

JPA:处理 OptimisticLockException 的模式

什么是非关系数据库的例子?

将文本列设为唯一键

关系未更新的 NSFetchedResultsController

为 django 模型自动创建数据的工具