本文整理汇总了C#中Microsoft.EntityFrameworkCore.Metadata.Internal.Model.AddForeignKey方法的典型用法代码示例。如果您正苦于以下问题:C# Model.AddForeignKey方法的具体用法?C# Model.AddForeignKey怎么用?C# Model.AddForeignKey使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Microsoft.EntityFrameworkCore.Metadata.Internal.Model
的用法示例。
在下文中一共展示了Model.AddForeignKey方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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 dependentEntityType = new Model().AddEntityType("D");
var principalEntityType = new Model().AddEntityType("P");
var dependentProperty1 = dependentEntityType.AddProperty("P1", typeof(int));
var dependentProperty2 = dependentEntityType.AddProperty("P2", typeof(int));
var idProperty = principalEntityType.AddProperty("Id", typeof(int));
principalEntityType.GetOrSetPrimaryKey(idProperty);
Assert.Equal(
CoreStrings.ForeignKeyCountMismatch("{'P1', 'P2'}", "D", "{'Id'}", "P"),
Assert.Throws<InvalidOperationException>(
() => dependentEntityType.AddForeignKey(new[] { dependentProperty1, dependentProperty2 }, principalEntityType.FindPrimaryKey(), principalEntityType)).Message);
}
示例2: 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 = entityType.AddForeignKey(new[] { dependentProp }, entityType.FindPrimaryKey(), entityType, ConfigurationSource.Convention);
foreignKey.IsUnique = true;
Assert.Same(entityType, foreignKey.PrincipalEntityType);
Assert.Same(principalProp, foreignKey.PrincipalKey.Properties.Single());
Assert.Same(dependentProp, foreignKey.Properties.Single());
Assert.True(foreignKey.IsUnique);
Assert.Same(entityType.FindPrimaryKey(), foreignKey.PrincipalKey);
Assert.Equal(ConfigurationSource.Convention, foreignKey.GetConfigurationSource());
foreignKey.UpdateConfigurationSource(ConfigurationSource.DataAnnotation);
Assert.Equal(ConfigurationSource.DataAnnotation, foreignKey.GetConfigurationSource());
}
示例3: Can_change_cascade_delete_flag
public void Can_change_cascade_delete_flag()
{
var entityType = new Model().AddEntityType("E");
var keyProp = entityType.AddProperty("Id", typeof(int));
var dependentProp = entityType.AddProperty("P", typeof(int));
var principalProp = entityType.AddProperty("U", typeof(int));
entityType.GetOrSetPrimaryKey(keyProp);
var principalKey = entityType.AddKey(principalProp);
var foreignKey = entityType.AddForeignKey(new[] { dependentProp }, principalKey, entityType);
Assert.Equal(DeleteBehavior.Restrict, foreignKey.DeleteBehavior);
foreignKey.DeleteBehavior = DeleteBehavior.Cascade;
Assert.Equal(DeleteBehavior.Cascade, foreignKey.DeleteBehavior);
foreignKey.DeleteBehavior = DeleteBehavior.Restrict;
Assert.Equal(DeleteBehavior.Restrict, foreignKey.DeleteBehavior);
}
示例4: CreateSelfRefFK
private ForeignKey CreateSelfRefFK(bool useAltKey = false)
{
var entityType = new Model().AddEntityType(typeof(SelfRef));
var pk = entityType.GetOrSetPrimaryKey(entityType.AddProperty(SelfRef.IdProperty));
var fkProp = entityType.AddProperty(SelfRef.SelfRefIdProperty);
var property = entityType.AddProperty("AltId", typeof(int));
var principalKey = useAltKey
? entityType.GetOrAddKey(property)
: pk;
var fk = entityType.AddForeignKey(new[] { fkProp }, principalKey, entityType);
fk.IsUnique = true;
fk.HasDependentToPrincipal(SelfRef.SelfRefPrincipalProperty);
fk.HasPrincipalToDependent(SelfRef.SelfRefDependentProperty);
return fk;
}
示例5: Setting_IsRequired_to_false_will_set_all_FK_properties_as_nullable
public void Setting_IsRequired_to_false_will_set_all_FK_properties_as_nullable()
{
var entityType = new Model().AddEntityType("E");
var property = entityType.AddProperty("Id1", typeof(int));
var property1 = entityType.AddProperty("Id2", typeof(string));
property1.IsNullable = false;
entityType.GetOrSetPrimaryKey(new[]
{
property,
property1
});
var dependentProp1 = entityType.AddProperty("P1", typeof(int?));
var dependentProp2 = entityType.AddProperty("P2", typeof(string));
var foreignKey = entityType.AddForeignKey(new[] { dependentProp1, dependentProp2 }, entityType.FindPrimaryKey(), entityType);
foreignKey.IsRequired = false;
Assert.False(foreignKey.IsRequired);
Assert.True(dependentProp1.IsNullable);
Assert.True(dependentProp2.IsNullable);
}
示例6: IsRequired_false_when_any_part_of_composite_FK_is_nullable
public void IsRequired_false_when_any_part_of_composite_FK_is_nullable()
{
var entityType = new Model().AddEntityType("E");
var property = entityType.AddProperty("Id1", typeof(int));
var property1 = entityType.AddProperty("Id2", typeof(string));
property1.IsNullable = false;
entityType.GetOrSetPrimaryKey(new[]
{
property,
property1
});
var dependentProp1 = entityType.AddProperty("P1", typeof(int));
var dependentProp2 = entityType.AddProperty("P2", typeof(string));
dependentProp2.IsNullable = true;
var foreignKey = entityType.AddForeignKey(new[] { dependentProp1, dependentProp2 }, entityType.FindPrimaryKey(), entityType);
Assert.False(foreignKey.IsRequired);
dependentProp2.IsNullable = false;
Assert.True(foreignKey.IsRequired);
}
示例7: IsRequired_and_IsUnique_null_when_dependent_property_nullable_by_default
public void IsRequired_and_IsUnique_null_when_dependent_property_nullable_by_default()
{
var entityType = new Model().AddEntityType("E");
var property = entityType.AddProperty("Id", typeof(int));
entityType.GetOrSetPrimaryKey(property);
var dependentProp = entityType.AddProperty("P", typeof(int?));
var foreignKey = entityType.AddForeignKey(new[] { dependentProp }, entityType.FindPrimaryKey(), entityType);
Assert.False(foreignKey.IsRequired);
Assert.False(foreignKey.IsUnique);
}
示例8: IsRequired_true_when_dependent_property_not_nullable
public void IsRequired_true_when_dependent_property_not_nullable()
{
var entityType = new Model().AddEntityType("E");
var property = entityType.AddProperty("Id", typeof(int));
entityType.GetOrSetPrimaryKey(property);
var dependentProp = entityType.AddProperty("P", typeof(int));
dependentProp.IsNullable = false;
var foreignKey = entityType.AddForeignKey(new[] { dependentProp }, entityType.FindPrimaryKey(), entityType);
Assert.True(foreignKey.IsRequired);
}
示例9: Can_create_foreign_key_with_non_pk_principal
public void Can_create_foreign_key_with_non_pk_principal()
{
var entityType = new Model().AddEntityType("E");
var keyProp = entityType.AddProperty("Id", typeof(int));
var dependentProp = entityType.AddProperty("P", typeof(int));
var principalProp = entityType.AddProperty("U", typeof(int));
entityType.GetOrSetPrimaryKey(keyProp);
var principalKey = entityType.AddKey(principalProp);
var foreignKey = entityType.AddForeignKey(new[] { dependentProp }, principalKey, entityType);
foreignKey.IsUnique = false;
Assert.Same(entityType, foreignKey.PrincipalEntityType);
Assert.Same(principalProp, foreignKey.PrincipalKey.Properties.Single());
Assert.Same(dependentProp, foreignKey.Properties.Single());
Assert.False(foreignKey.IsUnique);
Assert.Same(principalKey, foreignKey.PrincipalKey);
}