本文整理汇总了C#中System.Data.Entity.Core.Metadata.Edm.DbDatabaseMapping.GetEntitySetMapping方法的典型用法代码示例。如果您正苦于以下问题:C# DbDatabaseMapping.GetEntitySetMapping方法的具体用法?C# DbDatabaseMapping.GetEntitySetMapping怎么用?C# DbDatabaseMapping.GetEntitySetMapping使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Data.Entity.Core.Metadata.Edm.DbDatabaseMapping
的用法示例。
在下文中一共展示了DbDatabaseMapping.GetEntitySetMapping方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Generate
public void Generate(EntityType entityType, DbDatabaseMapping databaseMapping)
{
DebugCheck.NotNull(entityType);
DebugCheck.NotNull(databaseMapping);
var entitySet = databaseMapping.Model.GetEntitySet(entityType);
var entitySetMapping
= databaseMapping.GetEntitySetMapping(entitySet)
?? databaseMapping.AddEntitySetMapping(entitySet);
var entityTypeMapping =
entitySetMapping.EntityTypeMappings.FirstOrDefault(
m => m.EntityTypes.Contains(entitySet.ElementType))
?? entitySetMapping.EntityTypeMappings.FirstOrDefault();
var table
= entityTypeMapping != null
? entityTypeMapping.MappingFragments.First().Table
: databaseMapping.Database.AddTable(entityType.GetRootType().Name);
entityTypeMapping = new EntityTypeMapping(null);
var entityTypeMappingFragment
= new MappingFragment(databaseMapping.Database.GetEntitySet(table), entityTypeMapping, false);
entityTypeMapping.AddType(entityType);
entityTypeMapping.AddFragment(entityTypeMappingFragment);
entityTypeMapping.SetClrType(entityType.GetClrType());
entitySetMapping.AddTypeMapping(entityTypeMapping);
new PropertyMappingGenerator(_providerManifest)
.Generate(
entityType,
entityType.Properties,
entitySetMapping,
entityTypeMappingFragment,
new List<EdmProperty>(),
false);
}
示例2: Generate
public void Generate(EntityType entityType, DbDatabaseMapping databaseMapping)
{
DebugCheck.NotNull(entityType);
DebugCheck.NotNull(databaseMapping);
if (entityType.Abstract)
{
return;
}
var entitySet = databaseMapping.Model.GetEntitySet(entityType);
Debug.Assert(entitySet != null);
var entitySetMapping = databaseMapping.GetEntitySetMapping(entitySet);
Debug.Assert(entitySetMapping != null);
var columnMappings = GetColumnMappings(entityType, entitySetMapping).ToList();
var iaFkProperties = GetIndependentFkColumns(entityType, databaseMapping).ToList();
var insertFunctionMapping
= GenerateFunctionMapping(
ModificationOperator.Insert,
entitySetMapping.EntitySet,
entityType,
databaseMapping,
entityType.Properties,
iaFkProperties,
columnMappings,
entityType
.Properties
.Where(p => p.HasStoreGeneratedPattern()));
var updateFunctionMapping
= GenerateFunctionMapping(
ModificationOperator.Update,
entitySetMapping.EntitySet,
entityType,
databaseMapping,
entityType.Properties,
iaFkProperties,
columnMappings,
entityType
.Properties
.Where(p => p.GetStoreGeneratedPattern() == StoreGeneratedPattern.Computed));
var deleteFunctionMapping
= GenerateFunctionMapping(
ModificationOperator.Delete,
entitySetMapping.EntitySet,
entityType,
databaseMapping,
entityType.Properties,
iaFkProperties,
columnMappings);
var modificationStoredProcedureMapping
= new EntityTypeModificationFunctionMapping(
entityType,
deleteFunctionMapping,
insertFunctionMapping,
updateFunctionMapping);
entitySetMapping.AddModificationFunctionMapping(modificationStoredProcedureMapping);
}
示例3: GetEntityTypeMappingInHierarchy
protected static StorageEntityTypeMapping GetEntityTypeMappingInHierarchy(
DbDatabaseMapping databaseMapping, EntityType entityType)
{
DebugCheck.NotNull(databaseMapping);
DebugCheck.NotNull(entityType);
var entityTypeMapping = databaseMapping.GetEntityTypeMapping(entityType);
if (entityTypeMapping == null)
{
var entitySetMapping =
databaseMapping.GetEntitySetMapping(databaseMapping.Model.GetEntitySet(entityType));
if (entitySetMapping != null)
{
entityTypeMapping = entitySetMapping
.EntityTypeMappings
.First(
etm => entityType.DeclaredProperties.All(
dp => etm.MappingFragments.First()
.ColumnMappings.Select(pm => pm.PropertyPath.First()).Contains(dp)));
}
}
if (entityTypeMapping == null)
{
throw Error.UnmappedAbstractType(entityType.GetClrType());
}
return entityTypeMapping;
}