c# - 有没有办法映射到 Entity Framework 中的不可变实体?

标签 c# entity-framework orm immutability

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

有没有一种方法可以通过在 EF 中使用某种能够在不使用可设置属性的情况下处理初始化构造函数的工厂来避免代理并直接映射到真实实体?

最佳答案

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

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

关于c# - 有没有办法映射到 Entity Framework 中的不可变实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19299054/

相关文章:

c# - EF 多重关系

c# - 哪个 .NET ORM 对 PostgreSQL 数据库的支持最好

python - SQLAlchemy : Nested Composite Column Types and Custom Types

c# - .NET 中的透明度和 GIF——不一致的行为

c# - "When the site administrator has locked access to this section using <location allowOverride="假 "> from an inherited configuration file."

entity-framework - "Metadata information not found"使用 EF4 的 POCO 模板时?

php - Symfony/Doctrine : How to reduce the num of SELECT-queries?(多级关联实体;twig + jsonSerialize())

c# - IE 9 BHO 插件。加载外部 JS 文件时出现错误 SCRIPT1014

c# - 尝试插入我的数据失败

c# - EF linq skip/take 在哪里执行?