public virtual void Access_mode_can_be_overriden_at_entity_and_property_levels() { var model = new Model(); var entityType1 = model.AddEntityType(typeof(FullProp)); var e1p1 = entityType1.AddProperty("Id", typeof(int)); var e1p2 = entityType1.AddProperty("Foo", typeof(int)); var entityType2 = model.AddEntityType(typeof(ReadOnlyProp)); var e2p1 = entityType2.AddProperty("Id", typeof(int)); var e2p2 = entityType2.AddProperty("Foo", typeof(int)); model.SetPropertyAccessMode(PropertyAccessMode.Field); entityType2.SetPropertyAccessMode(PropertyAccessMode.FieldDuringConstruction); e2p2.SetPropertyAccessMode(PropertyAccessMode.Property); Assert.Equal(PropertyAccessMode.Field, model.GetPropertyAccessMode()); Assert.Equal(PropertyAccessMode.Field, entityType1.GetPropertyAccessMode()); Assert.Equal(PropertyAccessMode.Field, e1p1.GetPropertyAccessMode()); Assert.Equal(PropertyAccessMode.Field, e1p2.GetPropertyAccessMode()); Assert.Equal(PropertyAccessMode.FieldDuringConstruction, entityType2.GetPropertyAccessMode()); Assert.Equal(PropertyAccessMode.FieldDuringConstruction, e2p1.GetPropertyAccessMode()); Assert.Equal(PropertyAccessMode.Property, e2p2.GetPropertyAccessMode()); }