public void Only_required_properties_have_original_value_indexes_when_using_lazy_original_values() { var entityType = new EntityType(typeof(FullNotificationEntity)); entityType.AddProperty("Name", typeof(string), shadowProperty: false, concurrencyToken: true); entityType.AddProperty("Id", typeof(int)); Assert.Equal(-1, entityType.GetProperty("Id").OriginalValueIndex); Assert.Equal(0, entityType.GetProperty("Name").OriginalValueIndex); Assert.Equal(1, entityType.OriginalValueCount); }
public void FK_properties_are_marked_as_requiring_original_values() { var entityType = new EntityType(typeof(FullNotificationEntity)); entityType.SetKey(entityType.AddProperty("Id", typeof(int))); Assert.Equal(-1, entityType.GetProperty("Id").OriginalValueIndex); entityType.AddForeignKey(entityType.GetKey(), new[] { entityType.AddProperty("Id", typeof(int)) }); Assert.Equal(0, entityType.GetProperty("Id").OriginalValueIndex); }
public void Shadow_properties_have_CLR_flag_set_to_false() { var entityType = new EntityType(typeof(Customer)); entityType.AddProperty(Customer.NameProperty); entityType.AddProperty("Id", typeof(int)); entityType.AddProperty("Mane", typeof(int), shadowProperty: true, concurrencyToken: false); Assert.True(entityType.GetProperty("Name").IsClrProperty); Assert.True(entityType.GetProperty("Id").IsClrProperty); Assert.False(entityType.GetProperty("Mane").IsClrProperty); }
public void All_properties_have_original_value_indexes_when_using_eager_original_values() { var entityType = new EntityType(typeof(FullNotificationEntity)) { UseLazyOriginalValues = false }; entityType.AddProperty("Name", typeof(string)); entityType.AddProperty("Id", typeof(int)); Assert.Equal(0, entityType.GetProperty("Id").OriginalValueIndex); Assert.Equal(1, entityType.GetProperty("Name").OriginalValueIndex); Assert.Equal(2, entityType.OriginalValueCount); }
public void Can_get_property_and_can_try_get_property() { var entityType = new EntityType(typeof(Customer)); entityType.AddProperty(Customer.IdProperty); Assert.Equal("Id", entityType.TryGetProperty("Id").Name); Assert.Equal("Id", entityType.GetProperty("Id").Name); Assert.Null(entityType.TryGetProperty("Nose")); Assert.Equal( Strings.FormatPropertyNotFound("Nose", "Customer"), Assert.Throws <ModelItemNotFoundException>(() => entityType.GetProperty("Nose")).Message); }
public void Members_check_arguments() { Assert.Equal( "type", // ReSharper disable once AssignNullToNotNullAttribute Assert.Throws <ArgumentNullException>(() => new EntityType((Type)null)).ParamName); Assert.Equal( "name", // ReSharper disable once AssignNullToNotNullAttribute Assert.Throws <ArgumentNullException>(() => new EntityType((string)null)).ParamName); var entityType = new EntityType(typeof(Random)); Assert.Equal( "propertyInfo", // ReSharper disable once AssignNullToNotNullAttribute Assert.Throws <ArgumentNullException>(() => entityType.AddProperty((PropertyInfo)null)).ParamName); Assert.Equal( "property", // ReSharper disable once AssignNullToNotNullAttribute Assert.Throws <ArgumentNullException>(() => entityType.RemoveProperty(null)).ParamName); Assert.Equal( Strings.FormatArgumentIsEmpty("name"), Assert.Throws <ArgumentException>(() => entityType.TryGetProperty("")).Message); Assert.Equal( Strings.FormatArgumentIsEmpty("name"), Assert.Throws <ArgumentException>(() => entityType.GetProperty("")).Message); }
public KeyMetadataBuilder Properties([NotNull] params string[] propertyNames) { Check.NotNull(propertyNames, "propertyNames"); _entityType.SetKey(propertyNames.Select(n => _entityType.GetProperty(n)).ToArray()); return(new KeyMetadataBuilder(_entityType.GetKey())); }
public void Can_get_property_indexes() { var entityType = new EntityType(typeof(Customer)); entityType.AddProperty(Customer.NameProperty); entityType.AddProperty("Id", typeof(int), shadowProperty: true, concurrencyToken: false); entityType.AddProperty("Mane", typeof(int), shadowProperty: true, concurrencyToken: false); Assert.Equal(0, entityType.GetProperty("Id").Index); Assert.Equal(1, entityType.GetProperty("Mane").Index); Assert.Equal(2, entityType.GetProperty("Name").Index); Assert.Equal(0, entityType.GetProperty("Id").ShadowIndex); Assert.Equal(1, entityType.GetProperty("Mane").ShadowIndex); Assert.Equal(-1, entityType.GetProperty("Name").ShadowIndex); Assert.Equal(2, entityType.ShadowPropertyCount); }
public void Indexes_are_rebuilt_when_more_properties_added() { var entityType = new EntityType(typeof(FullNotificationEntity)); entityType.AddProperty("Name", typeof(string)); entityType.AddProperty("Id", typeof(int), shadowProperty: true, concurrencyToken: true); Assert.Equal(0, entityType.GetProperty("Id").Index); Assert.Equal(1, entityType.GetProperty("Name").Index); Assert.Equal(0, entityType.GetProperty("Id").ShadowIndex); Assert.Equal(-1, entityType.GetProperty("Name").ShadowIndex); Assert.Equal(0, entityType.GetProperty("Id").OriginalValueIndex); Assert.Equal(-1, entityType.GetProperty("Name").OriginalValueIndex); Assert.Equal(1, entityType.ShadowPropertyCount); Assert.Equal(1, entityType.OriginalValueCount); entityType.AddProperty("Game", typeof(int), shadowProperty: true, concurrencyToken: true); entityType.AddProperty("Mane", typeof(int), shadowProperty: true, concurrencyToken: true); Assert.Equal(0, entityType.GetProperty("Game").Index); Assert.Equal(1, entityType.GetProperty("Id").Index); Assert.Equal(2, entityType.GetProperty("Mane").Index); Assert.Equal(3, entityType.GetProperty("Name").Index); Assert.Equal(0, entityType.GetProperty("Game").ShadowIndex); Assert.Equal(1, entityType.GetProperty("Id").ShadowIndex); Assert.Equal(2, entityType.GetProperty("Mane").ShadowIndex); Assert.Equal(-1, entityType.GetProperty("Name").ShadowIndex); Assert.Equal(0, entityType.GetProperty("Game").OriginalValueIndex); Assert.Equal(1, entityType.GetProperty("Id").OriginalValueIndex); Assert.Equal(2, entityType.GetProperty("Mane").OriginalValueIndex); Assert.Equal(-1, entityType.GetProperty("Name").OriginalValueIndex); Assert.Equal(3, entityType.ShadowPropertyCount); Assert.Equal(3, entityType.OriginalValueCount); }
protected virtual IProperty GetNonRootDiscriminatorProperty() { var propertyName = (string)Annotations.GetAnnotation(RelationalAnnotationNames.DiscriminatorProperty); return(propertyName == null ? null : EntityType.GetProperty(propertyName)); }