【问题标题】:Can I create a poco class with private setter in EntityFramework我可以在 EntityFramework 中创建一个带有私有 setter 的 poco 类吗
【发布时间】:2015-04-01 22:20:23
【问题描述】:

我想要实现的是创建一个如下所示的类。

public class Purse
{
    public decimal AvaliableBalance { get; protected set; }        
    public decimal PendingBalance { get; protected set; }
    public decimal TotalBalance { get; protected set; }
}

但我想知道实体框架是否能够填充此类。如果有,怎么做?

基本上我想要完成的是在代码端限制直接写入这些属性,但我希望实体框架能够写入这些属性。我想通过一个唯一目的的方法公开这些属性的设置器是向它写入值(即:当然经过一些处理)。

【问题讨论】:

    标签: c# entity-framework domain-model


    【解决方案1】:

    你的方法会奏效。我已经大量使用了这种模式。 Entity Framework 使用反射将您的数据具体化为对象。由于即使您的成员是私有的,反射也会正常工作,因此该模式运行良好。

    【讨论】:

    • 我现在看到了,所以它的反射。谢谢
    • 这个答案大体上是正确的,但您也可以使用私有属性 - 请参阅 dotnetjalps.com/2015/04/…。如果适当配置,反射可以允许访问私有属性,这是有道理的。也可以使用带有参数的构造函数以在代码中使用和私有无参数构造函数(实体框架需要无参数构造函数),纯粹用于实体框架。
    • 使用 EF6 或更高版本(不确定早期版本),您也可以使用私有设置器。请参考这个答案stackoverflow.com/questions/26768695/…
    猜你喜欢
    • 1970-01-01
    • 2019-10-12
    • 2011-04-04
    • 1970-01-01
    • 2019-04-04
    • 1970-01-01
    • 1970-01-01
    • 2015-02-13
    • 1970-01-01
    相关资源
    最近更新 更多