private string Releations() { var code = new StringBuilder(); foreach (EntityReleationConfig rl in Entity.Releations) { EntityReleationConfig releation = rl; EntityConfig friend = Entities.FirstOrDefault(p => p.Name == releation.Friend); if (friend == null) { continue; } switch (releation.Releation) { case 0: case 1: code.Append(Releation1V1Code(releation)); break; case 2: code.Append(ReleationCode2(releation)); break; } } foreach (EntityConfig friend in Entities.Where(p => p != Entity)) { foreach (EntityReleationConfig releation in friend.Releations.Where(p => p.Friend == Entity.Name)) { code.Append(Releationx1V1reversionCode(releation, friend)); } } return(code.ToString()); }
private string ReleationCode2(EntityReleationConfig releation) { return(string.Format(@" /// <summary> /// {0} /// </summary> [IgnoreDataMember] private DataChildren<{1}, {1}DataAccess> _{1}DataView; /// <summary> /// {0}帮助类 /// </summary> [IgnoreDataMember,Browsable(false)] public DataChildren<{1}, {1}DataAccess> {1}DataView {{ get {{ return this._{1}DataView ?? (this._{1}DataView = new DataChildren<{1}, {1}DataAccess>(this,""{3}"",""{4}"",{5},{7}.Default.{6})); }} }} /// <summary> /// {0} /// </summary> [IgnoreDataMember,Browsable(false)] public bool Hase{2} {{ get {{ return this.{1}DataView.HaseValues(); }} }} /// <summary> /// {0} /// </summary> [IgnoreDataMember,Browsable(false)] public ObservableCollection<{1}> {2} {{ get {{ if (!this.{1}DataView._isLoaded) this.{1}DataView.LoadValues(); return this.{1}DataView; }} }}" , releation.Description , releation.Friend , releation.Name.ToPluralism() , releation.PrimaryKey , releation.ForeignKey , string.IsNullOrEmpty(releation.Condition) ? "null" : $@"""{releation.Condition}""" , releation.Friend.ToPluralism() , Project.DataBaseObjectName)); }
/// <summary> /// 与Friend的平等关系的1对1 /// </summary> /// <param name="releation"></param> /// <returns></returns> private string Releation1V1Code(EntityReleationConfig releation) { return(string.Format(@" /// <summary> /// {0}帮助类 /// </summary> [IgnoreDataMember] private ObjectFriend<{1}, {1}DataAccess> _{1}Helper; /// <summary> /// {0}帮助类 /// </summary> [IgnoreDataMember,Browsable(false)] public ObjectFriend<{1}, {1}DataAccess> {1}Helper {{ get {{ return this._{1}Helper ?? (this._{1}Helper = new ObjectFriend<{1}, {1}DataAccess>(this,""{3}"",""{4}"",true,{6}.Default.{5})); }} }} /// <summary> /// {0} /// </summary> [IgnoreDataMember,Browsable(false)] public {1} {2} {{ get {{ return this.{1}Helper.Friend; }} }}" , releation.Description , releation.Friend , releation.Name ?? releation.Friend , releation.PrimaryKey , releation.ForeignKey , releation.Friend.ToPluralism() , Project.DataBaseObjectName)); }