本文整理汇总了C#中System.Data.Entity.Core.Metadata.Edm.EntityType.GetReferenceType方法的典型用法代码示例。如果您正苦于以下问题:C# EntityType.GetReferenceType方法的具体用法?C# EntityType.GetReferenceType怎么用?C# EntityType.GetReferenceType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Data.Entity.Core.Metadata.Edm.EntityType
的用法示例。
在下文中一共展示了EntityType.GetReferenceType方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: InitializeAssociationEndMember
/// <summary>
/// Initialize the end member if its not initialized already
/// </summary>
/// <param name="associationType"></param>
/// <param name="end"></param>
/// <param name="endMemberType"></param>
private static AssociationEndMember InitializeAssociationEndMember(
AssociationType associationType, Som.IRelationshipEnd end,
EntityType endMemberType)
{
AssociationEndMember associationEnd;
EdmMember member;
// make sure that the end is not initialized as of yet
if (!associationType.Members.TryGetValue(end.Name, false /*ignoreCase*/, out member))
{
// Create the end member and add the operations
associationEnd = new AssociationEndMember(
end.Name,
endMemberType.GetReferenceType(),
end.Multiplicity.Value);
associationType.AddKeyMember(associationEnd);
}
else
{
associationEnd = (AssociationEndMember)member;
}
//Extract the optional Documentation
var relationshipEnd = end as Som.RelationshipEnd;
if (relationshipEnd != null
&& (relationshipEnd.Documentation != null))
{
associationEnd.Documentation = ConvertToDocumentation(relationshipEnd.Documentation);
}
return associationEnd;
}
示例2: ValidateAssociationTypeWithNonFkeyReference
private DataModelErrorEventArgs ValidateAssociationTypeWithNonFkeyReference(DataSpace dataSpace)
{
var model = new EdmModel(dataSpace, 1.0);
var intType =
dataSpace == DataSpace.CSpace
? PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.Int32)
: FakeSqlProviderServices.Instance.GetProviderManifest("2008").GetStoreTypes().Single(t => t.Name == "int");
var principal =
new EntityType("P", "ns", dataSpace, new [] {"Id"}, new[] { EdmProperty.CreatePrimitive("Id", intType) });
var dependent =
new EntityType("P", "ns", dataSpace, new [] {"Id"},
new[] { EdmProperty.CreatePrimitive("Id", intType), EdmProperty.CreatePrimitive("NonKeyProperty", intType) });
foreach (var property in principal.Properties.Concat(dependent.Properties))
{
property.Nullable = false;
}
var associationType =
new AssociationType("AT", "ns", false, dataSpace)
{
Constraint = new ReferentialConstraint(
new AssociationEndMember("P", principal.GetReferenceType(), RelationshipMultiplicity.One),
new AssociationEndMember("C", dependent.GetReferenceType(), RelationshipMultiplicity.Many),
principal.KeyProperties,
dependent.Properties.Where(p => p.Name == "NonKeyProperty"))
};
model.AddAssociationType(associationType);
var validationContext = new EdmModelValidationContext(model, true);
DataModelErrorEventArgs errorEventArgs = null;
validationContext.OnError += (_, e) => errorEventArgs = e;
EdmModelSemanticValidationRules
.EdmAssociationType_ValidateReferentialConstraint
.Evaluate(validationContext, model.AssociationTypes.Single());
return errorEventArgs;
}
示例3: AddAssociationType
public static AssociationType AddAssociationType(
this EdmModel model,
string name,
EntityType sourceEntityType,
RelationshipMultiplicity sourceAssociationEndKind,
EntityType targetEntityType,
RelationshipMultiplicity targetAssociationEndKind,
string modelNamespace = null)
{
DebugCheck.NotNull(model);
DebugCheck.NotEmpty(name);
DebugCheck.NotNull(sourceEntityType);
DebugCheck.NotNull(targetEntityType);
var associationType
= new AssociationType(
name,
modelNamespace ?? DefaultModelNamespace,
false,
DataSpace.CSpace)
{
SourceEnd =
new AssociationEndMember(
name + "_Source", sourceEntityType.GetReferenceType(), sourceAssociationEndKind),
TargetEnd =
new AssociationEndMember(
name + "_Target", targetEntityType.GetReferenceType(), targetAssociationEndKind)
};
model.AddAssociationType(associationType);
return associationType;
}
示例4: CreateModelWithAssociations
private EdmModel CreateModelWithAssociations(params EdmProperty[] foreignKeys)
{
var model = new EdmModel(DataSpace.SSpace);
for (var i = 0; i < foreignKeys.Length; i++)
{
var sourceEntityType = new EntityType("E" + i, "N", DataSpace.SSpace);
var targetEntityType = new EntityType("E" + i, "N", DataSpace.SSpace);
model.AddEntitySet("S" + i, sourceEntityType);
model.AddEntitySet("T" + i, targetEntityType);
var fk = foreignKeys[i];
var associationType = new AssociationType((fk == null ? "IA" : fk.Name) + i, "MN", false, DataSpace.SSpace)
{
SourceEnd = new AssociationEndMember(
"A_Source" + i, sourceEntityType.GetReferenceType(), RelationshipMultiplicity.ZeroOrOne),
TargetEnd = new AssociationEndMember(
"A_Target" + i, targetEntityType.GetReferenceType(), RelationshipMultiplicity.Many)
};
model.AddAssociationType(associationType);
if (fk != null)
{
var constraint = new ReferentialConstraint(
associationType.SourceEnd,
associationType.TargetEnd,
new[] { new EdmProperty("SourceProperty") },
new[] { fk });
associationType.Constraint = constraint;
}
model.AddAssociationSet("Set" + (fk == null ? "IA" : fk.Name) + i, associationType);
}
return model;
}