本文整理汇总了C#中Model.AddProperty方法的典型用法代码示例。如果您正苦于以下问题:C# Model.AddProperty方法的具体用法?C# Model.AddProperty怎么用?C# Model.AddProperty使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Model
的用法示例。
在下文中一共展示了Model.AddProperty方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Constructor_throws_when_principal_and_depedent_property_count_do_not_match
public void Constructor_throws_when_principal_and_depedent_property_count_do_not_match()
{
var dependentType = new Model().AddEntityType("D");
var principalType = new Model().AddEntityType("P");
var dependentProperty1 = dependentType.AddProperty("P1", typeof(int));
var dependentProperty2 = dependentType.AddProperty("P2", typeof(int));
var idProperty = principalType.AddProperty("Id", typeof(int));
principalType.GetOrSetPrimaryKey(idProperty);
Assert.Equal(
CoreStrings.ForeignKeyCountMismatch("{'P1', 'P2'}", "D", "{'Id'}", "P"),
Assert.Throws<InvalidOperationException>(
() => new ForeignKey(new[] { dependentProperty1, dependentProperty2 }, principalType.GetPrimaryKey(), dependentType, principalType)).Message);
}
示例2: Delegate_getter_is_returned_for_IProperty_property
public void Delegate_getter_is_returned_for_IProperty_property()
{
var entityType = new Model().AddEntityType(typeof(Customer));
var idProperty = entityType.AddProperty("Id", typeof(int));
idProperty.IsShadowProperty = false;
Assert.Equal(7, new ClrPropertyGetterSource().GetAccessor(idProperty).GetClrValue(new Customer { Id = 7 }));
}
示例3: M_underscore_matching_field_is_not_used_if_type_is_not_compatible
public void M_underscore_matching_field_is_not_used_if_type_is_not_compatible()
{
var entityType = new Model().AddEntityType(typeof(TheDarkSideOfTheMoon));
var property = entityType.AddProperty("SpeakToMe", typeof(int));
property.IsShadowProperty = false;
var propertyInfo = entityType.ClrType.GetAnyProperty("SpeakToMe");
var fields = propertyInfo.DeclaringType.GetRuntimeFields().ToDictionary(f => f.Name);
Assert.Null(new FieldMatcher().TryMatchFieldName(property, propertyInfo, fields));
}
示例4: Can_create_foreign_key
public void Can_create_foreign_key()
{
var entityType = new Model().AddEntityType("E");
var dependentProp = entityType.AddProperty("P", typeof(int));
var principalProp = entityType.AddProperty("Id", typeof(int));
entityType.GetOrSetPrimaryKey(principalProp);
var foreignKey
= new ForeignKey(new[] { dependentProp }, entityType.GetPrimaryKey(), entityType, entityType)
{
IsUnique = true
};
Assert.Same(entityType, foreignKey.PrincipalEntityType);
Assert.Same(principalProp, foreignKey.PrincipalKey.Properties.Single());
Assert.Same(dependentProp, foreignKey.Properties.Single());
Assert.True(foreignKey.IsUnique.Value);
Assert.Same(entityType.GetPrimaryKey(), foreignKey.PrincipalKey);
}
示例5: Throws_if_no_match_found_and_no_property_setter
public void Throws_if_no_match_found_and_no_property_setter()
{
var entityType = new Model().AddEntityType(typeof(TheDarkSide));
var property = entityType.AddProperty(TheDarkSide.TimeProperty);
Assert.Equal(
CoreStrings.NoFieldOrSetter(typeof(TheDarkSide).FullName, "Time"),
Assert.Throws<InvalidOperationException>(
() => new MemberMapper(new FieldMatcher()).MapPropertiesToMembers(entityType)).Message);
}
示例6: Delegate_setter_can_set_reference_type_property
public void Delegate_setter_can_set_reference_type_property()
{
var entityType = new Model().AddEntityType(typeof(Customer));
var idProperty = entityType.AddProperty(Customer.ContentProperty);
var customer = new Customer { Id = 7 };
new ClrPropertySetterSource().GetAccessor(idProperty).SetClrValue(customer, "MyString");
Assert.Equal("MyString", customer.Content);
}
示例7: Delegate_setter_can_set_value_type_property
public void Delegate_setter_can_set_value_type_property()
{
var entityType = new Model().AddEntityType(typeof(Customer));
var idProperty = entityType.AddProperty(Customer.IdProperty);
var customer = new Customer { Id = 7 };
new ClrPropertySetterSource().GetAccessor(idProperty).SetClrValue(customer, 1);
Assert.Equal(1, customer.Id);
}
示例8: Delegate_setter_is_returned_for_IProperty_property
public void Delegate_setter_is_returned_for_IProperty_property()
{
var entityType = new Model().AddEntityType(typeof(Customer));
var idProperty = entityType.AddProperty(Customer.IdProperty);
var customer = new Customer { Id = 7 };
new ClrPropertySetterSource().GetAccessor(idProperty).SetClrValue(customer, 77);
Assert.Equal(77, customer.Id);
}
示例9: Delegate_setter_is_cached_by_type_and_property_name
public void Delegate_setter_is_cached_by_type_and_property_name()
{
var entityType = new Model().AddEntityType(typeof(Customer));
var idProperty = entityType.AddProperty(Customer.IdProperty);
var source = new ClrPropertySetterSource();
var accessor = source.GetAccessor(typeof(Customer), "Id");
Assert.Same(accessor, source.GetAccessor(typeof(Customer), "Id"));
Assert.Same(accessor, source.GetAccessor(idProperty));
}
示例10: Field_name_match_is_used_in_preference_to_property_setter
public void Field_name_match_is_used_in_preference_to_property_setter()
{
var entityType = new Model().AddEntityType(typeof(TheDarkSide));
var property = entityType.AddProperty(TheDarkSide.BreatheProperty);
var mapping = new MemberMapper(new FieldMatcher()).MapPropertiesToMembers(entityType).Single();
Assert.Same(property, mapping.Item1);
Assert.IsAssignableFrom<FieldInfo>(mapping.Item2);
Assert.Equal("_breathe", mapping.Item2.Name);
}
示例11: Property_setter_is_used_if_no_matching_field_is_found
public void Property_setter_is_used_if_no_matching_field_is_found()
{
var entityType = new Model().AddEntityType(typeof(TheDarkSide));
var property = entityType.AddProperty(TheDarkSide.OnTheRunProperty);
var mapping = new MemberMapper(new FieldMatcher()).MapPropertiesToMembers(entityType).Single();
Assert.Same(property, mapping.Item1);
Assert.IsAssignableFrom<PropertyInfo>(mapping.Item2);
Assert.Equal("OnTheRun", mapping.Item2.Name);
}
示例12: Throws_if_annotated_field_if_types_not_compatible
public void Throws_if_annotated_field_if_types_not_compatible()
{
var entityType = new Model().AddEntityType(typeof(TheDarkSide));
var property = entityType.AddProperty(TheDarkSide.SpeakToMeProperty);
property["BackingField"] = "_badFieldForSpeak";
Assert.Equal(
CoreStrings.BadBackingFieldType("_badFieldForSpeak", typeof(string).Name, typeof(TheDarkSide).FullName, "SpeakToMe", typeof(int).Name),
Assert.Throws<InvalidOperationException>(
() => new MemberMapper(new FieldMatcher()).MapPropertiesToMembers(entityType)).Message);
}
示例13: Throws_if_annotated_field_name_is_not_found
public void Throws_if_annotated_field_name_is_not_found()
{
var entityType = new Model().AddEntityType(typeof(TheDarkSide));
var property = entityType.AddProperty(TheDarkSide.SpeakToMeProperty);
property["BackingField"] = "_speakToMe";
Assert.Equal(
CoreStrings.MissingBackingField(typeof(TheDarkSide).FullName, "SpeakToMe", "_speakToMe"),
Assert.Throws<InvalidOperationException>(
() => new MemberMapper(new FieldMatcher()).MapPropertiesToMembers(entityType)).Message);
}
示例14: Annotated_field_name_is_used_if_present
public void Annotated_field_name_is_used_if_present()
{
var entityType = new Model().AddEntityType(typeof(TheDarkSide));
var property = entityType.AddProperty(TheDarkSide.SpeakToMeProperty);
property["BackingField"] = "fieldForSpeak";
var mapping = new MemberMapper(new FieldMatcher()).MapPropertiesToMembers(entityType).Single();
Assert.Same(property, mapping.Item1);
Assert.Equal("fieldForSpeak", mapping.Item2.Name);
}
示例15: Delegate_getter_is_cached_by_type_and_property_name
public void Delegate_getter_is_cached_by_type_and_property_name()
{
var entityType = new Model().AddEntityType(typeof(Customer));
var idProperty = entityType.AddProperty("Id", typeof(int));
idProperty.IsShadowProperty = false;
var source = new ClrPropertyGetterSource();
var accessor = source.GetAccessor(typeof(Customer), "Id");
Assert.Same(accessor, source.GetAccessor(typeof(Customer), "Id"));
Assert.Same(accessor, source.GetAccessor(idProperty));
}