本文整理汇总了C#中System.Data.Entity.Core.Metadata.Edm.DbDatabaseMapping.GetEntitySetMappings方法的典型用法代码示例。如果您正苦于以下问题:C# DbDatabaseMapping.GetEntitySetMappings方法的具体用法?C# DbDatabaseMapping.GetEntitySetMappings怎么用?C# DbDatabaseMapping.GetEntitySetMappings使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Data.Entity.Core.Metadata.Edm.DbDatabaseMapping
的用法示例。
在下文中一共展示了DbDatabaseMapping.GetEntitySetMappings方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GenerateDiscriminators
private static void GenerateDiscriminators(DbDatabaseMapping databaseMapping)
{
DebugCheck.NotNull(databaseMapping);
foreach (var entitySetMapping in databaseMapping.GetEntitySetMappings())
{
if (entitySetMapping.EntityTypeMappings.Count() <= 1)
{
continue;
}
var typeUsage
= databaseMapping.ProviderManifest.GetStoreType(DiscriminatorTypeUsage);
var discriminatorColumn
= new EdmProperty(DiscriminatorColumnName, typeUsage)
{
Nullable = false,
DefaultValue = "(Undefined)"
};
entitySetMapping
.EntityTypeMappings
.First()
.MappingFragments
.Single()
.Table
.AddColumn(discriminatorColumn);
foreach (var entityTypeMapping in entitySetMapping.EntityTypeMappings)
{
// Abstract classes don't need a discriminator as they won't be directly materialized
if (entityTypeMapping.EntityType.Abstract)
{
continue;
}
var entityTypeMappingFragment = entityTypeMapping.MappingFragments.Single();
entityTypeMappingFragment.SetDefaultDiscriminator(discriminatorColumn);
entityTypeMappingFragment
.AddDiscriminatorCondition(discriminatorColumn, entityTypeMapping.EntityType.Name);
}
}
}
示例2: GenerateDiscriminators
private void GenerateDiscriminators(DbDatabaseMapping databaseMapping)
{
DebugCheck.NotNull(databaseMapping);
foreach (var entitySetMapping in databaseMapping.GetEntitySetMappings())
{
if (entitySetMapping.EntityTypeMappings.Count() <= 1)
{
continue;
}
var typeUsage
= _providerManifest.GetStoreType(DiscriminatorTypeUsage);
var discriminatorColumn
= new EdmProperty(DiscriminatorColumnName, typeUsage)
{
Nullable = false
};
entitySetMapping
.EntityTypeMappings
.First()
.MappingFragments
.Single()
.Table
.AddColumn(discriminatorColumn);
foreach (var entityTypeMapping in entitySetMapping.EntityTypeMappings)
{
var entityTypeMappingFragment = entityTypeMapping.MappingFragments.Single();
entityTypeMappingFragment.SetDefaultDiscriminator(discriminatorColumn);
entityTypeMappingFragment
.AddDiscriminatorCondition(discriminatorColumn, entityTypeMapping.EntityType.Name);
}
}
}
示例3: RemoveRedundantTables
private static void RemoveRedundantTables(DbDatabaseMapping databaseMapping)
{
DebugCheck.NotNull(databaseMapping);
var tables
= (from t in databaseMapping.Database.GetEntityTypes()
where databaseMapping.GetEntitySetMappings()
.SelectMany(esm => esm.EntityTypeMappings)
.SelectMany(etm => etm.MappingFragments).All(etmf => etmf.Table != t)
&& databaseMapping.GetAssociationSetMappings().All(asm => asm.Table != t)
select t).ToList();
tables.Each(
t =>
{
var tableName = t.GetTableName();
if (tableName != null)
{
throw Error.OrphanedConfiguredTableDetected(tableName);
}
databaseMapping.Database.RemoveEntityType(t);
});
}
示例4: RemoveRedundantColumnConditions
private static void RemoveRedundantColumnConditions(DbDatabaseMapping databaseMapping)
{
DebugCheck.NotNull(databaseMapping);
// Remove all the default discriminators where there is only one table using it
(from esm in databaseMapping.GetEntitySetMappings()
select new
{
Set = esm,
Fragments =
(from etm in esm.EntityTypeMappings
from etmf in etm.MappingFragments
group etmf by etmf.Table
into g
where g.Count(x => x.GetDefaultDiscriminator() != null) == 1
select g.Single(x => x.GetDefaultDiscriminator() != null))
})
.Each(x => x.Fragments.Each(f => f.RemoveDefaultDiscriminator(x.Set)));
}
示例5: ConfigureModificationFunctions
private void ConfigureModificationFunctions(
DbDatabaseMapping databaseMapping, EntityType entityType, DbProviderManifest providerManifest)
{
DebugCheck.NotNull(entityType);
DebugCheck.NotNull(databaseMapping);
DebugCheck.NotNull(providerManifest);
if (_modificationFunctionsConfiguration != null)
{
new ModificationFunctionMappingGenerator(providerManifest)
.Generate(entityType, databaseMapping);
var modificationFunctionMapping
= databaseMapping.GetEntitySetMappings()
.SelectMany(esm => esm.ModificationFunctionMappings)
.SingleOrDefault(mfm => mfm.EntityType == entityType);
if (modificationFunctionMapping != null)
{
_modificationFunctionsConfiguration.Configure(modificationFunctionMapping, providerManifest);
}
}
}
示例6: ConfigureFunctionParameters
internal void ConfigureFunctionParameters(DbDatabaseMapping databaseMapping, EntityType entityType)
{
DebugCheck.NotNull(databaseMapping);
DebugCheck.NotNull(entityType);
var parameterBindings
= (from esm in databaseMapping.GetEntitySetMappings()
from mfm in esm.ModificationFunctionMappings
where mfm.EntityType == entityType
from pb in mfm.PrimaryParameterBindings
select pb)
.ToList();
ConfigureFunctionParameters(parameterBindings);
foreach (var derivedEntityType in databaseMapping.Model.EntityTypes.Where(et => et.BaseType == entityType))
{
ConfigureFunctionParameters(databaseMapping, derivedEntityType);
}
}
示例7: ConfigurePropertyMappings
private void ConfigurePropertyMappings(
DbDatabaseMapping databaseMapping,
EntityType entityType,
DbProviderManifest providerManifest,
bool allowOverride = false)
{
DebugCheck.NotNull(databaseMapping);
DebugCheck.NotNull(entityType);
DebugCheck.NotNull(providerManifest);
var entityTypeMappings
= databaseMapping.GetEntityTypeMappings(entityType);
var propertyMappings
= (from etm in entityTypeMappings
from etmf in etm.MappingFragments
from pm in etmf.ColumnMappings
select Tuple.Create(pm, etmf.Table))
.ToList();
ConfigurePropertyMappings(propertyMappings, providerManifest, allowOverride);
_entityMappingConfigurations
.Each(c => c.ConfigurePropertyMappings(propertyMappings, providerManifest, allowOverride));
// Now, apply to any inherited (IsOfType) mappings
var inheritedPropertyMappings
= (from esm in databaseMapping.GetEntitySetMappings()
from etm in esm.EntityTypeMappings
where etm.IsHierarchyMapping
&& etm.EntityType.IsAncestorOf(entityType)
from etmf in etm.MappingFragments
from pm1 in etmf.ColumnMappings
where !propertyMappings.Any(pm2 => pm2.Item1.PropertyPath.SequenceEqual(pm1.PropertyPath))
select Tuple.Create(pm1, etmf.Table))
.ToList();
ConfigurePropertyMappings(inheritedPropertyMappings, providerManifest);
_entityMappingConfigurations
.Each(c => c.ConfigurePropertyMappings(inheritedPropertyMappings, providerManifest));
foreach (var derivedEntityType
in databaseMapping.Model.EntityTypes.Where(et => et.BaseType == entityType))
{
ConfigurePropertyMappings(databaseMapping, derivedEntityType, providerManifest, true);
}
}
示例8: RemoveDuplicateTphColumns
private static void RemoveDuplicateTphColumns(DbDatabaseMapping databaseMapping)
{
foreach (var table in databaseMapping.Database.EntityTypes)
{
var currentTable = table; // Prevent access to foreach variable in closure
new TphColumnFixer(
databaseMapping
.GetEntitySetMappings()
.SelectMany(e => e.EntityTypeMappings)
.SelectMany(e => e.MappingFragments)
.Where(f => f.Table == currentTable)
.SelectMany(f => f.ColumnMappings),
currentTable,
databaseMapping.Database).RemoveDuplicateTphColumns();
}
}
示例9: UniquifyFunctionNames
private static void UniquifyFunctionNames(DbDatabaseMapping databaseMapping)
{
DebugCheck.NotNull(databaseMapping);
foreach (var modificationStoredProcedureMapping
in databaseMapping
.GetEntitySetMappings()
.SelectMany(esm => esm.ModificationFunctionMappings))
{
var entityTypeConfiguration
= (EntityTypeConfiguration)modificationStoredProcedureMapping.EntityType.GetConfiguration();
if (entityTypeConfiguration.ModificationStoredProceduresConfiguration == null)
{
continue;
}
var modificationStoredProceduresConfiguration
= entityTypeConfiguration.ModificationStoredProceduresConfiguration;
UniquifyFunctionName(
databaseMapping,
modificationStoredProceduresConfiguration.InsertModificationStoredProcedureConfiguration,
modificationStoredProcedureMapping.InsertFunctionMapping);
UniquifyFunctionName(
databaseMapping,
modificationStoredProceduresConfiguration.UpdateModificationStoredProcedureConfiguration,
modificationStoredProcedureMapping.UpdateFunctionMapping);
UniquifyFunctionName(
databaseMapping,
modificationStoredProceduresConfiguration.DeleteModificationStoredProcedureConfiguration,
modificationStoredProcedureMapping.DeleteFunctionMapping);
}
foreach (var modificationStoredProcedureMapping
in databaseMapping
.GetAssociationSetMappings()
.Select(asm => asm.ModificationFunctionMapping)
.Where(asm => asm != null))
{
var navigationPropertyConfiguration
= (NavigationPropertyConfiguration)modificationStoredProcedureMapping
.AssociationSet.ElementType.GetConfiguration();
if (navigationPropertyConfiguration.ModificationStoredProceduresConfiguration == null)
{
continue;
}
UniquifyFunctionName(
databaseMapping,
navigationPropertyConfiguration.ModificationStoredProceduresConfiguration.InsertModificationStoredProcedureConfiguration,
modificationStoredProcedureMapping.InsertFunctionMapping);
UniquifyFunctionName(
databaseMapping,
navigationPropertyConfiguration.ModificationStoredProceduresConfiguration.DeleteModificationStoredProcedureConfiguration,
modificationStoredProcedureMapping.DeleteFunctionMapping);
}
}