在EF Code First中,是否可以将应该保留的属性封装到数据存储中?

Uch*_*uku 1 c# encapsulation entity-framework 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;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

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

ano*_*non 6

您可以创建它internal并确保包含POCO /域对象的项目与您的DbContext类在同一个程序集中.或者,您可以在包含POCO的文件中声明"朋友"程序集:

[assembly: InternalsVisibleTo("MyOther.Assembly")]