本文整理汇总了C#中System.Data.Entity.Core.Metadata.Edm.EntityType.AddKeyMember方法的典型用法代码示例。如果您正苦于以下问题:C# EntityType.AddKeyMember方法的具体用法?C# EntityType.AddKeyMember怎么用?C# EntityType.AddKeyMember使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Data.Entity.Core.Metadata.Edm.EntityType
的用法示例。
在下文中一共展示了EntityType.AddKeyMember方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Apply_should_not_match_key_that_is_also_an_fk
public void Apply_should_not_match_key_that_is_also_an_fk()
{
var model = new EdmModel(DataSpace.CSpace);
var entityType = new EntityType("E", "N", DataSpace.CSpace);
var property = EdmProperty.CreatePrimitive("P", PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.Int64));
entityType.AddKeyMember(property);
var associationType
= model.AddAssociationType(
"A", new EntityType("E", "N", DataSpace.CSpace), RelationshipMultiplicity.ZeroOrOne,
entityType, RelationshipMultiplicity.Many);
associationType.Constraint
= new ReferentialConstraint(
associationType.SourceEnd,
associationType.TargetEnd,
new[] { property },
new[] { property });
(new StoreGeneratedIdentityKeyConvention())
.Apply(entityType, new DbModel(model, null));
Assert.Null(entityType.KeyProperties.Single().GetStoreGeneratedPattern());
}
示例2: Apply_should_set_correct_defaults_for_string_keys
public void Apply_should_set_correct_defaults_for_string_keys()
{
var entityType = new EntityType();
var property = EdmProperty.Primitive("P", PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String));
entityType.AddMember(property);
entityType.AddKeyMember(property);
((IEdmConvention<EntityType>)new SqlCePropertyMaxLengthConvention())
.Apply(entityType, CreateEdmModel());
Assert.Equal(4000, property.MaxLength);
}
示例3: Apply_should_set_correct_defaults_for_string_keys
public void Apply_should_set_correct_defaults_for_string_keys()
{
var entityType = new EntityType("E", "N", DataSpace.CSpace);
var property = EdmProperty.Primitive("P", PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String));
entityType.AddMember(property);
entityType.AddKeyMember(property);
((IEdmConvention<EntityType>)new PropertyMaxLengthConvention())
.Apply(entityType, new EdmModel(DataSpace.CSpace));
Assert.Equal(128, property.MaxLength);
}
示例4: Apply_should_match_simple_short_key
public void Apply_should_match_simple_short_key()
{
var entityType = new EntityType();
var property = EdmProperty.Primitive("P", PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.Int32));
entityType.AddKeyMember(property);
((IEdmConvention<EntityType>)new StoreGeneratedIdentityKeyConvention())
.Apply(entityType, new EdmModel().Initialize());
Assert.Equal(
StoreGeneratedPattern.Identity,
entityType.DeclaredKeyProperties.Single().GetStoreGeneratedPattern());
}
示例5: Apply_should_match_simple_short_key
public void Apply_should_match_simple_short_key()
{
var entityType = new EntityType("E", "N", DataSpace.CSpace);
var property = EdmProperty.CreatePrimitive("P", PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.Int32));
entityType.AddKeyMember(property);
(new StoreGeneratedIdentityKeyConvention())
.Apply(entityType, new DbModel(new EdmModel(DataSpace.CSpace), null));
Assert.Equal(
StoreGeneratedPattern.Identity,
entityType.KeyProperties.Single().GetStoreGeneratedPattern());
}
示例6: FromProperties_lazy_loaded_when_none_present
public void FromProperties_lazy_loaded_when_none_present()
{
var principalEntity = new EntityType("E", "N", DataSpace.CSpace);
principalEntity.AddKeyMember(new EdmProperty("K"));
var referentialConstraint
= new ReferentialConstraint(
new AssociationEndMember("P", principalEntity),
new AssociationEndMember("D", new EntityType("E", "N", DataSpace.CSpace)),
Enumerable.Empty<EdmProperty>(),
Enumerable.Empty<EdmProperty>());
Assert.NotEmpty(referentialConstraint.FromProperties);
}
示例7: Apply_should_move_declared_keys_head_of_declared_properties_list
public void Apply_should_move_declared_keys_head_of_declared_properties_list()
{
var entityType = new EntityType("E", "N", DataSpace.CSpace);
var type = typeof(SimpleEntity);
entityType.GetMetadataProperties().SetClrType(type);
var property1 = EdmProperty.CreatePrimitive("PrivateProperty", PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String));
entityType.AddMember(property1);
var property2 = EdmProperty.CreatePrimitive("InheritedPropertyB", PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String));
entityType.AddMember(property2);
var property3 = EdmProperty.CreatePrimitive("InheritedPropertyA", PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String));
entityType.AddMember(property3);
var property4 = EdmProperty.CreatePrimitive("PropertyB", PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String));
entityType.AddMember(property4);
var property5 = EdmProperty.CreatePrimitive("PropertyA", PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String));
entityType.AddMember(property5);
var property6 = EdmProperty.CreatePrimitive("Key", PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String));
entityType.AddMember(property6);
entityType.AddKeyMember(property6);
new DeclaredPropertyOrderingConvention().Apply(entityType, new DbModel(new EdmModel(DataSpace.CSpace), null));
Assert.True(
entityType.DeclaredProperties.Select(e => e.Name)
.SequenceEqual(
new[]
{
"Key",
"PrivateProperty",
"PropertyA",
"PropertyB",
"InheritedPropertyA",
"InheritedPropertyB"
}));
}
示例8: Can_remove_member
public void Can_remove_member()
{
var entityType = new EntityType("E", "N", DataSpace.CSpace);
Assert.Empty(entityType.Members);
var property = EdmProperty.Primitive("P", PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String));
entityType.AddKeyMember(property);
Assert.Equal(1, entityType.KeyMembers.Count);
Assert.Equal(1, entityType.Members.Count);
entityType.RemoveMember(property);
Assert.Empty(entityType.KeyMembers);
Assert.Empty(entityType.Members);
}
示例9: Apply_should_introduce_constraint_when_one_to_one
public void Apply_should_introduce_constraint_when_one_to_one()
{
var entityType1 = new EntityType("E", "N", DataSpace.CSpace);
entityType1.AddKeyMember(EdmProperty.Primitive("P", PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String)));
var entityType2 = new EntityType("E", "N", DataSpace.CSpace);
entityType2.AddKeyMember(EdmProperty.Primitive("P", PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String)));
var associationType = new AssociationType("A", XmlConstants.ModelNamespace_3, false, DataSpace.CSpace);
associationType.SourceEnd = new AssociationEndMember("S", entityType2);
associationType.TargetEnd = new AssociationEndMember("T", entityType1);
associationType.MarkPrincipalConfigured();
((IEdmConvention<AssociationType>)new OneToOneConstraintIntroductionConvention())
.Apply(associationType, new EdmModel(DataSpace.CSpace));
Assert.NotNull(associationType.Constraint);
Assert.Equal(1, associationType.Constraint.ToProperties.Count);
}
开发者ID:christiandpena,项目名称:entityframework,代码行数:20,代码来源:OneToOneConstraintIntroductionConventionTests.cs
示例10: KeyProperties_is_thread_safe
public void KeyProperties_is_thread_safe()
{
var baseType = new EntityType("E", "N", DataSpace.CSpace);
var entityType = new EntityType("F", "N", DataSpace.CSpace);
var property = EdmProperty.CreatePrimitive("P", PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String));
baseType.AddKeyMember(property);
entityType.BaseType = baseType;
const int cycles = 100;
const int threadCount = 30;
Action readKeyProperty = () =>
{
for (var i = 0; i < cycles; ++i)
{
var keys = entityType.KeyProperties;
//touching KeyMembers.Source triggers a reset to KeyProperties
var sourceCount = entityType.KeyMembers.Source.Count;
Assert.True(sourceCount == 1);
var keysAfterReset = entityType.KeyProperties;
Assert.True(keys != null, "First reference to key properties should not be null");
Assert.True(keysAfterReset != null, "Second reference to key properties should not be null");
Assert.False(ReferenceEquals(keys, keysAfterReset), "The key properties instances should be different");
}
};
var tasks = new List<Thread>();
for (var i = 0; i < threadCount; ++i)
{
var thread = new Thread(new ThreadStart(readKeyProperty));
tasks.Add(thread);
}
tasks.ForEach(t => t.Start());
tasks.ForEach(t => t.Join());
}
示例11: Can_get_list_of_key_properties
public void Can_get_list_of_key_properties()
{
var entityType = new EntityType("E", "N", DataSpace.CSpace);
Assert.Empty(entityType.KeyProperties);
var property = EdmProperty.Primitive("P", PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String));
entityType.AddKeyMember(property);
Assert.Equal(1, entityType.KeyProperties.Count);
Assert.Equal(1, entityType.KeyProperties.Where(key => entityType.DeclaredMembers.Contains(key)).Count());
entityType.RemoveMember(property);
var baseType = new EntityType("E", "N", DataSpace.CSpace);
baseType.AddKeyMember(property);
entityType.BaseType = baseType;
Assert.Equal(1, entityType.KeyProperties.Count);
Assert.Empty(entityType.KeyProperties.Where(key => entityType.DeclaredMembers.Contains(key)));
Assert.Equal(1, entityType.KeyMembers.Count);
}
示例12: IsKeyMember_should_return_true_when_part_of_key
public void IsKeyMember_should_return_true_when_part_of_key()
{
var primitiveType = PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.Int32);
var property = EdmProperty.CreatePrimitive("P", primitiveType);
Assert.False(property.IsKeyMember);
var entityType = new EntityType("E", "N", DataSpace.CSpace);
entityType.AddMember(property);
Assert.False(property.IsKeyMember);
entityType.AddKeyMember(property);
Assert.True(property.IsKeyMember);
}
示例13: Apply_should_ignore_when_key_already_specified
public void Apply_should_ignore_when_key_already_specified()
{
var entityType = new EntityType("E", "N", DataSpace.CSpace);
var property1 = EdmProperty.Primitive("Id", PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String));
entityType.AddMember(property1);
var property = property1;
entityType.AddKeyMember(EdmProperty.Primitive("P", PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String)));
(new IdKeyDiscoveryConvention()).Apply(entityType, new DbModel(new EdmModel(DataSpace.CSpace), null));
Assert.False(entityType.KeyProperties.Contains(property));
}
示例14: Apply_should_match_key_that_is_an_fk_used_in_table_splitting
public void Apply_should_match_key_that_is_an_fk_used_in_table_splitting()
{
var model = new EdmModel(DataSpace.CSpace);
var entityType = new EntityType("E", "N", DataSpace.CSpace);
var property = EdmProperty.CreatePrimitive("P", PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.Int64));
entityType.AddKeyMember(property);
var targetConfig = new EntityTypeConfiguration(typeof(object));
targetConfig.ToTable("SharedTable");
entityType.GetMetadataProperties().SetConfiguration(targetConfig);
var sourceEntityType = new EntityType("E", "N", DataSpace.CSpace);
var sourceConfig = new EntityTypeConfiguration(typeof(object));
sourceConfig.ToTable("SharedTable");
sourceEntityType.GetMetadataProperties().SetConfiguration(sourceConfig);
var associationType
= model.AddAssociationType(
"A", sourceEntityType, RelationshipMultiplicity.One,
entityType, RelationshipMultiplicity.One);
associationType.Constraint
= new ReferentialConstraint(
associationType.SourceEnd,
associationType.TargetEnd,
new[] { property },
new[] { property });
(new StoreGeneratedIdentityKeyConvention())
.Apply(entityType, new DbModel(model, null));
Assert.Equal(
StoreGeneratedPattern.Identity,
entityType.KeyProperties.Single().GetStoreGeneratedPattern());
}
示例15: Apply_should_set_given_value_for_binary_key
public void Apply_should_set_given_value_for_binary_key()
{
var entityType = new EntityType("E", "N", DataSpace.CSpace);
var property = EdmProperty.CreatePrimitive("P", PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String));
entityType.AddMember(property);
entityType.AddKeyMember(property);
(new SqlCePropertyMaxLengthConvention(2000)).Apply(entityType, CreateDbModel());
Assert.Null(property.IsUnicode);
Assert.Equal(2000, property.MaxLength);
}