本文整理汇总了C#中IEntityType.GetKeys方法的典型用法代码示例。如果您正苦于以下问题:C# IEntityType.GetKeys方法的具体用法?C# IEntityType.GetKeys怎么用?C# IEntityType.GetKeys使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IEntityType
的用法示例。
在下文中一共展示了IEntityType.GetKeys方法的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: StartTrackingFromQuery
/// <summary>
/// This API supports the Entity Framework Core infrastructure and is not intended to be used
/// directly from your code. This API may change or be removed in future releases.
/// </summary>
public virtual InternalEntityEntry StartTrackingFromQuery(
IEntityType baseEntityType,
object entity,
ValueBuffer valueBuffer)
{
var existingEntry = TryGetEntry(entity);
if (existingEntry != null)
{
return existingEntry;
}
var clrType = entity.GetType();
var newEntry = _factory.Create(this,
baseEntityType.ClrType == clrType
? baseEntityType
: _model.FindEntityType(clrType),
entity, valueBuffer);
foreach (var key in baseEntityType.GetKeys())
{
GetOrCreateIdentityMap(key).AddOrUpdate(newEntry);
}
_entityReferenceMap[entity] = newEntry;
newEntry.MarkUnchangedFromQuery();
if (_subscriber.SnapshotAndSubscribe(newEntry))
{
_needsUnsubscribe = true;
}
return newEntry;
}