我的公司即将开始一个使用 Telerik 的 OpenAccess ORM 的新项目。这对我们来说是一个新产品,我们将第一次在项目中使用 ORM 而不是基于数据集的方法。我们目前对构建数据层的最佳方式存在一些分歧。具体来说,我们是否应该有一个项目的 .rlinq 文件和域模型,或者我们是否应该拥有每个屏幕/模块的 .rlinq 文件,其中只包含特定屏幕/模块所需的表格和表格中的列。为了说明后者:
假设我们有一个 Person 表,其中包含名字、姓氏、ssn、出生日期、性别和婚姻状况的字段。在个人信息屏幕中,我们需要所有这些字段,因此我们将整个表包含在该 .rlinq 文件中的域模型中。在另一个屏幕上(使用单独的 .rlinq 文件),我们只需要此人的姓氏和 ssn,因此该 .rlinq 文件中的 Person 对象仅包含姓氏和 ssn。
这种方法的主要论点是我们应该只选择特定屏幕所需的数据,而不是更多。在我们当前基于数据集的应用程序中,这是有道理的。也有人担心拥有不必要的表和关系会导致加载不需要的数据,即使它没有被请求并导致网络负载。反对这一点的论点是,我们正在分割域模型并引入不必要的复杂性,而 ORM 的部分工作是通过缓存和延迟加载来管理数据获取。我们无法就此达成协议,也无法以某种方式找到任何确凿的信息,因此我们向 StackOverflow 社区寻求帮助!
如果重要的话,我们正在构建一个基于 Windows 窗体的 Intranet 应用程序,数据层将位于 WCF 服务之后,并且数据库将有大约 100 个表。
预先感谢您的帮助!