使用Code First时,EntityFramework究竟做了什么来映射具有自定义getter和setter的属性?
当序列化时,它简单地称为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都需要被公开?
解决方法
是; EF确实叫getter和setter.
EF实际上是不可能以任何其他方式工作的.
EF实际上是不可能以任何其他方式工作的.
没有;他们甚至可以是私人的. (虽然财产本身必须是公开的)