c# - 在 EF Code First 中,是否可以封装应该持久保存到数据存储的属性?

标签 c# entity-framework encapsulation code-first

假设我有一个 POCO,我希望 EF Code First 持久保存到数据存储:

public class Campaign
{
    public string Name { get; set; }
    public double GoalAmount { get; set; }
    private double AmountRaised { get; set; }
    public bool GoalMet
    {
        get
        {
            return AmountRaised >= GoalAmount;
        }
    }
}

现在,无论出于何种原因,我不希望对象外部可以访问 AmountRaised 属性,但我确实希望它持久保存到数据存储中。使用 EF Code First 可以做到这一点吗?

最佳答案

您可以将其设置为internal 并确保包含 POCO/域对象的项目与您的 DbContext 类位于同一程序集中。或者您可以在包含您的 POCO 的文件中声明“ friend ”程序集:

[程序集:InternalsVisibleTo("MyOther.Assembly")]

关于c# - 在 EF Code First 中,是否可以封装应该持久保存到数据存储的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4731346/

相关文章:

c# - 两个下拉菜单的选择javascript

C# - Linq to SQL,类型转换错误

asp.net - 通过 WCF 访问数据集而不序列化整个数据?

c# - 添加到数据库后访问对象属性

c# - Entity Framework 错误 "You have an error in your sql syntax entity framework"

Java - ArrayList 返回空

c# - 如何在单元测试期间设置数据结构的内部状态?

c# - 如何循环遍历用户定义列表 <T> 数组中的元素?

c - 那么,如何将程序模块化并实现信息隐藏呢?

c# - 在C#中使用私有(private)变量有什么好处