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