如何组织DataClasses.dbml文件

时间:2012-09-18 03:58:24

标签: visual-studio-2010 linq visual-studio linq-to-sql

我想了解那里的人们如何以更具伸缩性的方式管理dbml文件?

您是否只有一个DataClasses1.dbml并将每个表拖入其中?

您是否有单独的文件用于单独的逻辑分组,例如Accounts,HR?如果是这样,当一个表链接到另一个dbml文件中的表时,您如何直观地看到外键关系?

感谢。

2 个答案:

答案 0 :(得分:1)

最好是为你的所有表使用一个DBML个文件,以便你可以一起看到所有的关系,即Foreign Key等。但它完全取决于你的要求.. < / p>

答案 1 :(得分:1)

使用Entity Framework(对于linq-to-sql也一样)我喜欢为数据库的不同部分使用单独的上下文类。

但是什么是“不同的”?

在大多数情况下,与应用程序核心业务相关的所有内容都是相互关联的,因为单独的上下文才有意义。但几乎每个应用程序都有横向任务,如授权,翻译,审计等。这些是适合不同背景的好选择。

但仍然会有与业务逻辑的连接。您可能知道,您不能以连接转换为SQL的方式从单独的上下文连接类。只在记忆中。因此,在多个上下文中复制某些实体很有用。因此,例如,业务上下文和授权上下文都将包含User个实体。一个上下文应该负责维护实体,另一个应该以只读方式使用它。

修改

通过复制实体,我的意思是两个(或更多)上下文可以有一个映射到数据库中同一个表的实体。像User一样。如果您愿意,业务上下文可以用于创建和更新用户,授权上下文(例如)用于向特定用户添加角色,而无需修改用户本身。