本文整理汇总了C#中IEntityType.GetForeignKeys方法的典型用法代码示例。如果您正苦于以下问题:C# IEntityType.GetForeignKeys方法的具体用法?C# IEntityType.GetForeignKeys怎么用?C# IEntityType.GetForeignKeys使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IEntityType
的用法示例。
在下文中一共展示了IEntityType.GetForeignKeys方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: AddToIdentityMap
private void AddToIdentityMap(IEntityType entityType, EntityKey entityKey, InternalEntityEntry newEntry)
{
_identityMap.Add(entityKey, newEntry);
foreach (var key in entityType.GetKeys().Where(k => k != entityKey.Key))
{
var principalKeyValue = newEntry.GetPrincipalKeyValue(key);
if (principalKeyValue != EntityKey.InvalidEntityKey)
{
_identityMap[principalKeyValue] = newEntry;
}
}
foreach (var foreignKey in entityType.GetForeignKeys())
{
var dependentKey = newEntry.GetDependentKeyValue(foreignKey);
if (dependentKey == EntityKey.InvalidEntityKey)
{
continue;
}
Dictionary<EntityKey, HashSet<InternalEntityEntry>> fkMap;
if (!_dependentsMap.TryGetValue(foreignKey, out fkMap))
{
fkMap = new Dictionary<EntityKey, HashSet<InternalEntityEntry>>();
_dependentsMap[foreignKey] = fkMap;
}
HashSet<InternalEntityEntry> dependents;
if (!fkMap.TryGetValue(dependentKey, out dependents))
{
dependents = new HashSet<InternalEntityEntry>();
fkMap[dependentKey] = dependents;
}
dependents.Add(newEntry);
}
}
示例2: GenerateNavigationsConfiguration
public override void GenerateNavigationsConfiguration(
IEntityType entityType, IndentedStringBuilder sb)
{
Check.NotNull(entityType, nameof(entityType));
Check.NotNull(sb, nameof(sb));
var first = true;
foreach (var foreignKey in entityType.GetForeignKeys())
{
var dependentEndNavigationPropertyName =
(string)foreignKey[SqlServerMetadataModelProvider.AnnotationNameDependentEndNavPropName];
var principalEndNavigationPropertyName =
(string)foreignKey[SqlServerMetadataModelProvider.AnnotationNamePrincipalEndNavPropName];
if (first)
{
first = false;
}
else
{
sb.AppendLine();
sb.AppendLine();
}
sb.Append("entity.");
sb.Append("Reference");
sb.Append("<");
sb.Append(foreignKey.PrincipalEntityType.Name);
sb.Append(">(d => d.");
sb.Append(dependentEndNavigationPropertyName);
sb.Append(")");
if (foreignKey.IsUnique)
{
sb.Append(".InverseReference(");
}
else
{
sb.Append(".InverseCollection(");
}
if (!string.IsNullOrEmpty(principalEndNavigationPropertyName))
{
sb.Append("p => p.");
sb.Append(principalEndNavigationPropertyName);
}
sb.Append(")");
sb.Append(".ForeignKey");
if (foreignKey.IsUnique)
{
// If the relationship is 1:1 need to define to which end
// the ForeignKey properties belong.
sb.Append("<");
sb.Append(entityType.Name);
sb.Append(">");
}
sb.Append("(d => ");
sb.Append(Generator.ModelUtilities
.GenerateLambdaToKey(foreignKey.Properties, "d"));
sb.Append(");");
}
}