public override void Initialize(ProjectMetadata project) { base.Initialize(project); if (Entitys.Values.Any(a => a.Definition.CubeType == Model.Definitions.Entities.EEntityCubeType.Fact)) { return; } HashSet <PropertyNavigationData> readyPropertys = new HashSet <PropertyNavigationData>(); foreach (var entity in this.Entitys.Values) { foreach (var pro in entity.NavigationPropertys.Values.Where(a => a.IsInherit == false)) { readyPropertys.Add(pro); } } while (readyPropertys.Count > 0) { var navi = readyPropertys.First(); var item = new RelationDataItem(navi); readyPropertys.Remove(item.FromNavigate); if (item.ToNavigate != null) { readyPropertys.Remove(item.ToNavigate); } this.Relations.Add(item); } }
private string GetCascadeOnDelete(RelationDataItem item) { if (item.AllowCascadeOnDelete) { return($".WillCascadeOnDelete({item.CascadeOnDelete.ToString().ToLower()})"); } return(""); }
public string GetForeignKey(RelationDataItem item) { if (item.AllownForeignKey) { return($".HasForeignKey(a => a.{item.ForeignKeyName})"); } return(""); }
private string GetWithProperty(RelationDataItem item) { if (item.ToNavigate != null) { return($"a => a.{item.ToNavigate.Name}"); } return(""); }
private string GetHasName(RelationDataItem item) { switch (item.FromNavigate.Member.ToCardinality) { case EMappingCardinality.ZeroOrOne: return("Optional"); case EMappingCardinality.One: return("Required"); case EMappingCardinality.Many: return("Many"); } return(""); }
private string GetWithName(RelationDataItem item) { string result = ""; var member = item.FromNavigate.Member; switch (member.Cardinality) { case EMappingCardinality.ZeroOrOne: result = "Optional"; break; case EMappingCardinality.One: result = "Required"; break; case EMappingCardinality.Many: result = "Many"; break; } if (member.Cardinality != EMappingCardinality.Many && member.ToCardinality != EMappingCardinality.Many) { if (member.Cardinality == member.ToCardinality) { if (item.ToNavigate != null && item.ToNavigate.Member.IsMain) { result += "Dependent"; } else { result += "Principal"; } } } return(result); }
private string GetHasProperty(RelationDataItem item) { return($"a => a.{item.FromNavigate.Name}"); }