检测POCO实体何时在实体框架中初始化

时间:2014-12-23 18:59:54

标签: c# entity-framework entity-framework-6 poco

假设我有一个具有属性的POCO

public class Person
{
    private string _firstName;
    public string FirstName
    {
       get { return _firstName; }
       set
       {
           _firstName = value;
           // DO STUFF;
       }
    }
}

当EF正在初始化对象时,我只想设置_firstName而不是其他任何东西,只有在初始化对象之后我才想让一个集合运行其余的// DO STUFF;

1 个答案:

答案 0 :(得分:0)

为什么不简单地

  1. 将属性设置器声明为protected;和
  2. 将您的// DO STUFF行为公开为正确的方法SetFirstName(string firstName)
  3. 这样的事情:

    public class Person
    {
        public string FirstName { get; protected set; }
    
        public string SetFirstName(string value)
        {
           _firstName = value;
           // DO STUFF;
        }
    }
    

    更干净,不需要" hack" EF根本就没有。