2012-08-15 43 views
10

EntityFramework在使用Code First时如何映射具有自定义getter和setter的属性?EntityFramework Code首先对属性获取者/设置者做什么?

它只是在序列化时调用属性的getter,而在反序列化时调用setter?所以,我可以做一些愚蠢像...

public class Foo { 

    public DateTime TimeAccessed { 
     get { 
      return DateTime.Now; 
     } 
     set { 
      TimeDeserialized = DateTime.Now; 
     } 
    } 

    [NotMapped] 
    public DateTime TimeDeserialized { get; private set; } 
} 

注意我在使用上面的代码,或类似的东西没有实际发生的利息......这是仅供参考。

另外,当使用Code First映射属性时,是否所有的getter和setter都需要为public

回答

13

是; EF确实打电话给获得者和制定者。
EF实际上不可能以任何其他方式工作。

否;他们甚至可以是私人的。 (虽然财产本身必须公开)

+0

清晰简洁 - 谢谢! – Eric 2012-08-15 00:06:40