补充 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 @:#endregion
} }
@if (isManyToMany) { @if (isManyToMany) {
@: var manyAny = false;
@:#region => ManyToMany
foreach (var ft in gen.tables) { foreach (var ft in gen.tables) {
if (ft != gen.table) { if (ft != gen.table) {
var ftfks = ft.Foreigns.Where(ftfk => ftfk.Columns.Where(ftfkcol => ftfkcol.IsPrimary == false).Any() == false).ToArray(); 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 + ""."", """"); 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; 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; } @:public@(isLazying ? "" virtual"" : """") List<@gen.GetCsName(fkTableName)> @gen.GetCsName(csname)s { get; set; }
} }
} }
} }
} }
if (manyAny)
{
@: @:
@:#endregion @:#endregion
}
} }
} }
@gen.GetMySqlEnumSetDefine() @gen.GetMySqlEnumSetDefine()

View File

@ -125,6 +125,13 @@
清空状态数据 清空状态数据
</summary> </summary>
</member> </member>
<member name="M:FreeSql.DbSet`1.RemoveAsync(System.Linq.Expressions.Expression{System.Func{`0,System.Boolean}})">
<summary>
根据 lambda 条件删除数据
</summary>
<param name="predicate"></param>
<returns></returns>
</member>
<member name="M:FreeSql.DbSet`1.Add(`0)"> <member name="M:FreeSql.DbSet`1.Add(`0)">
<summary> <summary>
添加 添加
@ -479,5 +486,14 @@
<param name="that"></param> <param name="that"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Microsoft.Extensions.DependencyInjection.FreeSqlRepositoryDependencyInjection.AddFreeRepository(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action{FreeSql.FluentDataFilter},System.Reflection.Assembly[])">
<summary>
批量注入 Repository可以参考代码自行调整
</summary>
<param name="services"></param>
<param name="globalDataFilter"></param>
<param name="assemblies"></param>
<returns></returns>
</member>
</members> </members>
</doc> </doc>