我想了解人们如何以更具可扩展性的方式管理 dbml 文件?
您是否只有一个 DataClasses1.dbml 并将每个表都拖入其中?
您是否有单独的文件用于单独的逻辑分组,例如帐户、人力资源?如果是这样,当一个表链接到另一个 dbml 文件中的表时,您如何直观地查看外键关系?
谢谢。
我想了解人们如何以更具可扩展性的方式管理 dbml 文件?
您是否只有一个 DataClasses1.dbml 并将每个表都拖入其中?
您是否有单独的文件用于单独的逻辑分组,例如帐户、人力资源?如果是这样,当一个表链接到另一个 dbml 文件中的表时,您如何直观地查看外键关系?
谢谢。
更好的是为所有表格使用一个DBML
文件,这样你就可以看到所有的关系,例如等等。但这Foreign Key
完全取决于你的要求。
使用实体框架(与 linq-to-sql 相同) 我喜欢为数据库的不同部分使用单独的上下文类。
但什么是“与众不同”?
在大多数情况下,与应用程序的核心业务相关的所有内容都过于相互关联,以至于单独的上下文没有意义。但几乎每个应用程序都有横向任务,如授权、翻译、审计等。这些是单独上下文的良好候选者。
尽管如此,仍然会有与业务逻辑的连接。您可能知道,您不能以将连接转换为 SQL 的方式从不同的上下文连接类。只存在于记忆中。因此,在多个上下文中复制一些实体很有用。因此,例如,业务上下文和授权上下文都将包含User
实体。一个上下文应该负责实体的维护,而另一个上下文应该以只读方式使用它。
编辑
通过实体的重复,我的意思是两个(或更多)上下文可以有一个实体映射到数据库中的同一个表。喜欢User
。如果您愿意,业务上下文可以用于创建和更新用户,授权上下文(例如)用于向特定用户添加角色,而不修改用户本身。