【发布时间】:2012-06-11 06:48:56
【问题描述】:
有什么方法可以禁用实体框架中的实体插入?
我正在使用 DDD,并且在特定的有界上下文中,用户表的某些必需的数据库字段没有意义(在此上下文中)。所以,我想从 User 实体中删除它们,但这样做我失去了将 new 用户保存到数据库的能力。没关系,因为在这种情况下,我不应该创建用户。
我的第一个想法是禁用用户实体上的插入(但允许更新)。
可行吗?或者,这种情况有其他解决方案吗?
【问题讨论】:
-
听起来你已经受到了那个例外的保护,不是吗?我发现投资这种“保护”是浪费时间。在我看来,“身份和访问管理”BC 应该为您提供必要的查询方法和表示。
-
也许你是对的。但是,当工作量不大时,我总是更喜欢出现编译时错误而不是运行时错误。
-
另外,假设另一个开发人员试图弄清楚为什么一个简单的插入会引发异常。他可能需要很长时间才能意识到真正的问题。
-
沟通对我来说似乎很重要。但这不是重点。这里的问题是您正在(重新)使用 EF 来实现本质上应该是用户数据的只读视图。您允许人们首先访问他们不应该能够访问的 Object/DbContext。您缺少传达这一点的抽象级别。
标签: entity-framework domain-driven-design