我刚刚观看了 Julie Lermans 关于在 EF 中使用有界上下文的视频(http://www.pluralsight.com/training/Courses/TableOfContents/efarchitecture),我现在正在尝试找出实现它的最佳方法(使用 POCO) . 我看到的两个选项是要么拥有一个定义所有内容的 edmx 模型,然后手工制作 DbContexts 以包含适当的实体,要么为每个上下文拥有单独的 edmx 模型并使用自动创建的 DbContexts。
有没有人知道哪个是最好的或任何一个的优点/缺点?
恕我直言:对于单个模型,它的类要少得多,代码重用要多得多(尽管这些类是自动创建的,所以实际上它只会是手动复制的额外功能),但我会有很多一个地方的类和需要专门化的类,每个类都必须有不同的名称。例如,客户、客户功能 X、客户功能 B。
使用单独的模型,我可以对上下文中的内容更加严格,因为删除属性不需要是一个全新的实体,并且我可以根据需要命名所有内容(即所有模型都可以使用 Customer 对象,即使它在模型之间有所不同),但现在每个上下文都有完全不同的实体,即使它们都只是映射到同一个表 - 这也可能使在上下文之间传递它们变得更加困难(但这不应该经常需要,否则它表示上下文定义错误)。