我正在设计一个 C# 应用程序
- 演示文稿(网站 + 弹性应用程序)
- 业务逻辑层(可能是 WCF 以启用多客户端平台)
- 数据访问层(使用 NHibernate)
我们将把我们的解决方案集成到许多预先存在的客户数据库环境中,我们想在 DAL 中使用 NHibernate。我的同事指出,使用 NHibernate 从客户的数据库(如用户或图像)生成类会导致 BLL 崩溃每次数据库更改时都在我们面前!所以问题是我们如何防止这种情况发生?我们正在考虑使用 AutoMapper 创建业务对象并将 NHibernate 对象映射到这些 BO(嗯,这会使它们成为 DTO 吗?)并防止 dal 更改影响 BLL .. 这是要走的路吗?
谢谢 !
编辑 :
为了更好地理解我们想要实现的目标,您可能需要上下文:我们正在为前端和 C# 构建一个照片存储/共享应用程序,主要用于我们公司,所以我们处理代码和数据库的各个方面。
但是:该产品也可以按层购买,最终已经有一个带有用户表或图像表的数据库。我在这里考虑一个新的潜在客户,他有一个包含几亿行的 Image 表,并且由于表的 ALTERing 太长而不会为我们的业务逻辑添加列。
尽管这是可能的(例如,用户表可以因为较少的行而被修改),但我们在问自己如何处理表结构更改而不影响我们的所有解决方案,每次我们必须从 BLL 集成到层数据库中到 Flex 中的客户端应用程序!