有没有办法在实体框架中映射到不可变实体?

Tri*_*Gao 7 c# orm entity-framework immutability

我想通过避免在我的代码中使用两组实体来保存一些工作.到目前为止,我有第一组,它只是EF的一组虚拟代理实体,具有默认构造函数和可设置属性,因此它可以映射到它们.另一个是我在业务代码中使用的一组真实实体.在使用初始化构造函数创建时,真实的是不可变的并完全初始化.

有没有办法避免代理和直接映射到真实实体通过使用EF中的某些工厂能够处理初始化构造函数而不使用可设置的特性?

Luk*_*brt 6

这是不可能的,EF需要无参数构造函数,它必须能够设置属性.

为了更好的封装,您可以制作属性设置器protected.EF仍然可以设置属性值(通过生成的代理),但从外部角度来看,它看起来是不可变的.