我在工作中使用实体框架并遇到了一些问题。
通常我听说创建包含与某些域相关的表的小型 Edmx 文件,即:Help Desk Edmx、HR Edmx 等。与其将所有表加载到一个大 Edmx 中,这会更简单,但出于性能考虑(在主要是设计和构建时间),这是不可行的。
我遇到了一些麻烦,首先是关于公共表,即:Employees Tables,它完全是 Edmx 的,当我使用 Employee 类引用并且对两个命名空间都有使用时发生冲突,然后我必须引用 Empoyee全名为 MyCompany.HelpDesk.Employee 的类。
看起来不自然。
我发现自己在所有 EDMX 中反复添加相同的表,这是一种返工,我花了几分钟时间在实体框架设计中添加一个表,因为我在添加表对话框中有 2k 个表。
也许 VS2012 可能是在同一个 Edmx 文件中加载 2k 表的解决方案(因为可以拆分设计器),但我不相信,因为它也会延迟编译,而不仅仅是打开设计器。
另一种选择可能是 Code First,但它没有一个像样的工具来将数据库逆向工程到类,因为它尝试从数据库加载所有表,大约需要 2 小时!