补充 FreeSql.Generator ManyToMany 特性

This commit is contained in:
28810
2020-06-19 23:48:53 +08:00
parent 31e4b2d8fa
commit f1e144daaf
2 changed files with 32 additions and 2 deletions

View File

@ -206,8 +206,7 @@ namespace @gen.NameSpace {
@:#endregion
}
@if (isManyToMany) {
@:
@:#region 外键 => 导航属性ManyToMany
var manyAny = false;
foreach (var ft in gen.tables) {
if (ft != gen.table) {
var ftfks = ft.Foreigns.Where(ftfk => ftfk.Columns.Where(ftfkcol => ftfkcol.IsPrimary == false).Any() == false).ToArray();
@ -230,15 +229,30 @@ namespace @gen.NameSpace {
{
fkTableName = fkTableName.Replace(rightft.Schema + ""."", """");
}
var middleTableName = (midft.Schema + ""."" + midft.Name).Trim('.');
if (midft.Schema == ""public"" || midft.Schema == ""dbo"")
{
middleTableName = middleTableName.Replace(midft.Schema + ""."", """");
}
var csname = rightft.Name;
if (manyAny == false)
{
manyAny = true;
@:
@:#region 外键 => 导航属性ManyToMany
}
@:
@:[Navigate(ManyToMany = typeof(@gen.GetCsName(middleTableName)))]
@:public@(isLazying ? "" virtual"" : """") List<@gen.GetCsName(fkTableName)> @gen.GetCsName(csname)s { get; set; }
}
}
}
}
if (manyAny)
{
@:
@:#endregion
}
}
}
@gen.GetMySqlEnumSetDefine()