我想了解那里的人们如何以更具伸缩性的方式管理dbml文件?
您是否只有一个DataClasses1.dbml并将每个表拖入其中?
您是否有单独的文件用于单独的逻辑分组,例如Accounts,HR?如果是这样,当一个表链接到另一个dbml文件中的表时,您如何直观地看到外键关系?
感谢。
答案 0 :(得分:1)
最好是为你的所有表使用一个DBML
个文件,以便你可以一起看到所有的关系,即Foreign Key
等。但它完全取决于你的要求.. < / p>
答案 1 :(得分:1)
使用Entity Framework(对于linq-to-sql也一样)我喜欢为数据库的不同部分使用单独的上下文类。
但是什么是“不同的”?
在大多数情况下,与应用程序核心业务相关的所有内容都是相互关联的,因为单独的上下文才有意义。但几乎每个应用程序都有横向任务,如授权,翻译,审计等。这些是适合不同背景的好选择。
但仍然会有与业务逻辑的连接。您可能知道,您不能以连接转换为SQL的方式从单独的上下文连接类。只在记忆中。因此,在多个上下文中复制某些实体很有用。因此,例如,业务上下文和授权上下文都将包含User
个实体。一个上下文应该负责维护实体,另一个应该以只读方式使用它。
修改强>
通过复制实体,我的意思是两个(或更多)上下文可以有一个映射到数据库中同一个表的实体。像User
一样。如果您愿意,业务上下文可以用于创建和更新用户,授权上下文(例如)用于向特定用户添加角色,而无需修改用户本身。