feat: 完成code to web模块
This commit is contained in:
@@ -10,6 +10,8 @@ using System.Threading.Tasks;
|
|||||||
using Yi.Framework.Infrastructure.CurrentUsers;
|
using Yi.Framework.Infrastructure.CurrentUsers;
|
||||||
using Yi.Framework.Infrastructure.Data.Auditing;
|
using Yi.Framework.Infrastructure.Data.Auditing;
|
||||||
using Yi.Framework.Infrastructure.Data.Entities;
|
using Yi.Framework.Infrastructure.Data.Entities;
|
||||||
|
using Yi.Framework.Infrastructure.Ddd.Entities;
|
||||||
|
using Yi.Framework.Infrastructure.Helper;
|
||||||
|
|
||||||
namespace Yi.Framework.Infrastructure.Sqlsugar
|
namespace Yi.Framework.Infrastructure.Sqlsugar
|
||||||
{
|
{
|
||||||
@@ -124,6 +126,15 @@ namespace Yi.Framework.Infrastructure.Sqlsugar
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case DataFilterType.InsertByObject:
|
case DataFilterType.InsertByObject:
|
||||||
|
if (entityInfo.PropertyName.Equals(nameof(IEntity<long>.Id)))
|
||||||
|
{
|
||||||
|
//主键为空或者为默认最小值
|
||||||
|
if (oldValue is 0)
|
||||||
|
{
|
||||||
|
entityInfo.SetValue(SnowflakeHelper.NextId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (entityInfo.PropertyName.Equals(nameof(IAuditedObject.CreationTime)))
|
if (entityInfo.PropertyName.Equals(nameof(IAuditedObject.CreationTime)))
|
||||||
{
|
{
|
||||||
//为空或者为默认最小值
|
//为空或者为默认最小值
|
||||||
|
|||||||
@@ -14,14 +14,14 @@ namespace Yi.Framework.Module.WebFirstManager.DataSeed
|
|||||||
{
|
{
|
||||||
public class FieldDataSeed : AbstractDataSeed<FieldEntity>, ITransient
|
public class FieldDataSeed : AbstractDataSeed<FieldEntity>, ITransient
|
||||||
{
|
{
|
||||||
private TableEntity _tableEntity;
|
private TableAggregateRoot _tableEntity;
|
||||||
public FieldDataSeed(IRepository<FieldEntity> repository) : base(repository)
|
public FieldDataSeed(IRepository<FieldEntity> repository) : base(repository)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public override async Task<bool> IsInvoker()
|
public override async Task<bool> IsInvoker()
|
||||||
{
|
{
|
||||||
var tableRepository = App.GetRequiredService<IRepository<TableEntity>>();
|
var tableRepository = App.GetRequiredService<IRepository<TableAggregateRoot>>();
|
||||||
_tableEntity = await tableRepository.GetFirstAsync(x => x.Name == "Test");
|
_tableEntity = await tableRepository.GetFirstAsync(x => x.Name == "Test");
|
||||||
if (_tableEntity is null)
|
if (_tableEntity is null)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -11,17 +11,17 @@ using Yi.Framework.Module.WebFirstManager.Entities;
|
|||||||
|
|
||||||
namespace Yi.Framework.Module.WebFirstManager.DataSeed
|
namespace Yi.Framework.Module.WebFirstManager.DataSeed
|
||||||
{
|
{
|
||||||
public class TableDataSeed : AbstractDataSeed<TableEntity>, ITransient
|
public class TableDataSeed : AbstractDataSeed<TableAggregateRoot>, ITransient
|
||||||
{
|
{
|
||||||
public TableDataSeed(IRepository<TableEntity> repository) : base(repository)
|
public TableDataSeed(IRepository<TableAggregateRoot> repository) : base(repository)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public override List<TableEntity> GetSeedData()
|
public override List<TableAggregateRoot> GetSeedData()
|
||||||
{
|
{
|
||||||
var entities=new List<TableEntity>();
|
var entities=new List<TableAggregateRoot>();
|
||||||
|
|
||||||
entities.Add(new TableEntity
|
entities.Add(new TableAggregateRoot
|
||||||
{
|
{
|
||||||
Id=SnowflakeHelper.NextId,
|
Id=SnowflakeHelper.NextId,
|
||||||
Name="Test",
|
Name="Test",
|
||||||
|
|||||||
@@ -6,20 +6,20 @@ using Yi.Framework.Module.WebFirstManager.Handler;
|
|||||||
namespace Yi.Framework.Module.WebFirstManager.Domain
|
namespace Yi.Framework.Module.WebFirstManager.Domain
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 模板领域服务
|
/// 代码文件领域服务,与代码文件生成相关,web to code
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class TemplateManager : ITransient
|
public class CodeFileManager : ITransient
|
||||||
{
|
{
|
||||||
private IEnumerable<ITemplateHandler> _templateHandlers;
|
private IEnumerable<ITemplateHandler> _templateHandlers;
|
||||||
private IRepository<TemplateEntity> _repository;
|
private IRepository<TemplateEntity> _repository;
|
||||||
private IRepository<FieldEntity> _fieldRepository;
|
private IRepository<FieldEntity> _fieldRepository;
|
||||||
public TemplateManager(IEnumerable<ITemplateHandler> templateHandlers, IRepository<FieldEntity> fieldRepository, IRepository<TemplateEntity> repository)
|
public CodeFileManager(IEnumerable<ITemplateHandler> templateHandlers, IRepository<FieldEntity> fieldRepository, IRepository<TemplateEntity> repository)
|
||||||
{
|
{
|
||||||
_templateHandlers = templateHandlers;
|
_templateHandlers = templateHandlers;
|
||||||
_repository = repository;
|
_repository = repository;
|
||||||
_fieldRepository = fieldRepository;
|
_fieldRepository = fieldRepository;
|
||||||
}
|
}
|
||||||
public async Task HandlerAsync(TableEntity tableEntity)
|
public async Task BuildWebToCodeAsync(TableAggregateRoot tableEntity)
|
||||||
{
|
{
|
||||||
var templates = await _repository.GetListAsync();
|
var templates = await _repository.GetListAsync();
|
||||||
var fields = await _fieldRepository.GetListAsync();
|
var fields = await _fieldRepository.GetListAsync();
|
||||||
@@ -29,7 +29,6 @@ namespace Yi.Framework.Module.WebFirstManager.Domain
|
|||||||
foreach (var templateHandler in _templateHandlers)
|
foreach (var templateHandler in _templateHandlers)
|
||||||
{
|
{
|
||||||
templateHandler.SetTable(tableEntity);
|
templateHandler.SetTable(tableEntity);
|
||||||
templateHandler.SetFields(fields);
|
|
||||||
templateStr = templateHandler.Invoker(templateStr);
|
templateStr = templateHandler.Invoker(templateStr);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -43,6 +42,8 @@ namespace Yi.Framework.Module.WebFirstManager.Domain
|
|||||||
|
|
||||||
//await File.WriteAllTextAsync(str, templateEntity.BuildPath);
|
//await File.WriteAllTextAsync(str, templateEntity.BuildPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -3,10 +3,14 @@ using System.Collections.Generic;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using Furion.DependencyInjection;
|
||||||
|
|
||||||
namespace Yi.Framework.Module.WebFirstManager.Domain
|
namespace Yi.Framework.Module.WebFirstManager.Domain
|
||||||
{
|
{
|
||||||
internal class DataBaseManger
|
/// <summary>
|
||||||
|
/// 数据库领域服务,与数据库相关,同步到数据库,web to db ,code to db
|
||||||
|
/// </summary>
|
||||||
|
public class DataBaseManger : ITransient
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,105 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using EasyTool;
|
||||||
|
using Furion;
|
||||||
|
using Furion.DatabaseAccessor;
|
||||||
|
using Furion.DependencyInjection;
|
||||||
|
using Mapster.Utils;
|
||||||
|
using Microsoft.AspNetCore.Components.Authorization;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
|
using Org.BouncyCastle.Asn1.Ntt;
|
||||||
|
using SqlSugar;
|
||||||
|
using Yi.Framework.Infrastructure.Ddd.Repositories;
|
||||||
|
using Yi.Framework.Infrastructure.Helper;
|
||||||
|
using Yi.Framework.Module.WebFirstManager.Entities;
|
||||||
|
using Yi.Framework.Module.WebFirstManager.Enums;
|
||||||
|
using DescriptionAttribute = System.ComponentModel.DescriptionAttribute;
|
||||||
|
|
||||||
|
namespace Yi.Framework.Module.WebFirstManager.Domain
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 与webfrist相关,同步到web,code to web
|
||||||
|
/// </summary>
|
||||||
|
public class WebTemplateManager : ITransient
|
||||||
|
{
|
||||||
|
private IRepository<TableAggregateRoot> _repository;
|
||||||
|
public WebTemplateManager(IRepository<TableAggregateRoot> repository)
|
||||||
|
{
|
||||||
|
_repository = repository;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 通过当前的实体代码获取表存储
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
|
||||||
|
public Task<List<TableAggregateRoot>> BuildCodeToWebAsync()
|
||||||
|
{
|
||||||
|
var entityTypes = new List<Type>();
|
||||||
|
foreach (var assembly in App.Assemblies)
|
||||||
|
{
|
||||||
|
foreach (var t in assembly.GetTypes())
|
||||||
|
{
|
||||||
|
if (t.GetCustomAttributes(false).Any(a => a.GetType().Equals(typeof(SugarTable))
|
||||||
|
&& !t.GetCustomAttributes(false).Any(a => a.GetType().Equals(typeof(SplitTableAttribute)))))
|
||||||
|
{
|
||||||
|
entityTypes.Add(t);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var tableAggregateRoots = new List<TableAggregateRoot>();
|
||||||
|
foreach (var entityType in entityTypes)
|
||||||
|
{
|
||||||
|
tableAggregateRoots.Add(EntityTypeMapperToTable(entityType));
|
||||||
|
}
|
||||||
|
|
||||||
|
return Task.FromResult(tableAggregateRoots);
|
||||||
|
}
|
||||||
|
|
||||||
|
private TableAggregateRoot EntityTypeMapperToTable(Type entityType)
|
||||||
|
{
|
||||||
|
var tableAggregateRoot = new TableAggregateRoot();
|
||||||
|
tableAggregateRoot.Fields = new List<FieldEntity>();
|
||||||
|
var table = entityType.GetCustomAttribute<SugarTable>();
|
||||||
|
|
||||||
|
tableAggregateRoot.Name = table.TableName;
|
||||||
|
|
||||||
|
foreach (var p in entityType.GetProperties())
|
||||||
|
{
|
||||||
|
tableAggregateRoot.Fields.Add(PropertyMapperToFiled(p));
|
||||||
|
}
|
||||||
|
tableAggregateRoot.Fields.ForEach(x => x.TableId = tableAggregateRoot.Id);
|
||||||
|
return tableAggregateRoot;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private FieldEntity PropertyMapperToFiled(PropertyInfo propertyInfo)
|
||||||
|
{
|
||||||
|
var fieldEntity = new FieldEntity();
|
||||||
|
fieldEntity.Name = propertyInfo.Name;
|
||||||
|
var enumName = typeof(FieldTypeEnum).GetFields(BindingFlags.Static | BindingFlags.Public).Where(x => x.GetCustomAttribute<DescriptionAttribute>()?.Description == propertyInfo.PropertyType.Name).FirstOrDefault()?.Name;
|
||||||
|
if (enumName is null)
|
||||||
|
{
|
||||||
|
fieldEntity.FieldType = FieldTypeEnum.String;
|
||||||
|
Console.Out.WriteLine($"字段类型:{propertyInfo.PropertyType.Name},未定义");
|
||||||
|
//throw new ApplicationException($"字段类型:{propertyInfo.PropertyType.Name},未定义");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
fieldEntity.FieldType = EnumUtil.Parse<FieldTypeEnum>(enumName);
|
||||||
|
}
|
||||||
|
|
||||||
|
var colum = propertyInfo.GetCustomAttribute<SugarColumn>();
|
||||||
|
if (colum is not null && colum.Length != 0)
|
||||||
|
{
|
||||||
|
fieldEntity.Length = colum.Length;
|
||||||
|
}
|
||||||
|
return fieldEntity;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -5,14 +5,15 @@ using System.Text;
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using SqlSugar;
|
using SqlSugar;
|
||||||
using Yi.Framework.Infrastructure.Ddd.Entities;
|
using Yi.Framework.Infrastructure.Ddd.Entities;
|
||||||
|
using Yi.Framework.Infrastructure.Helper;
|
||||||
|
|
||||||
namespace Yi.Framework.Module.WebFirstManager.Entities
|
namespace Yi.Framework.Module.WebFirstManager.Entities
|
||||||
{
|
{
|
||||||
[SugarTable("Table")]
|
[SugarTable("Table")]
|
||||||
public class TableEntity : IEntity<long>
|
public class TableAggregateRoot : IAggregateRoot<long>
|
||||||
{
|
{
|
||||||
[SugarColumn(IsPrimaryKey = true)]
|
[SugarColumn(IsPrimaryKey = true)]
|
||||||
public long Id { get; set; }
|
public long Id { get; set; } = SnowflakeHelper.NextId;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 表名
|
/// 表名
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -1,21 +1,22 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using EasyTool;
|
|
||||||
|
|
||||||
namespace Yi.Framework.Module.WebFirstManager.Enums
|
namespace Yi.Framework.Module.WebFirstManager.Enums
|
||||||
{
|
{
|
||||||
public enum FieldTypeEnum
|
public enum FieldTypeEnum
|
||||||
{
|
{
|
||||||
[Description("string")]
|
[Description("String")]
|
||||||
String,
|
String,
|
||||||
|
|
||||||
[Description("int")]
|
[Description("Int32")]
|
||||||
Int,
|
Int,
|
||||||
|
|
||||||
[Description("long")]
|
[Description("Int64")]
|
||||||
Long
|
Long,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ namespace Yi.Framework.Module.WebFirstManager.Handler
|
|||||||
StringBuilder fieldStrs = new StringBuilder();
|
StringBuilder fieldStrs = new StringBuilder();
|
||||||
|
|
||||||
|
|
||||||
foreach (var field in Fields)
|
foreach (var field in Table.Fields)
|
||||||
{
|
{
|
||||||
var typeStr = EnumUtil.GetDescriptionByValue(field.FieldType);
|
var typeStr = EnumUtil.GetDescriptionByValue(field.FieldType);
|
||||||
var nameStr = field.Name;
|
var nameStr = field.Name;
|
||||||
|
|||||||
@@ -9,9 +9,7 @@ namespace Yi.Framework.Module.WebFirstManager.Handler
|
|||||||
{
|
{
|
||||||
public interface ITemplateHandler
|
public interface ITemplateHandler
|
||||||
{
|
{
|
||||||
void SetTable(TableEntity table);
|
void SetTable(TableAggregateRoot table);
|
||||||
void SetFields(List<FieldEntity> fields);
|
|
||||||
|
|
||||||
string Invoker(string str);
|
string Invoker(string str);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,17 +9,11 @@ namespace Yi.Framework.Module.WebFirstManager.Handler
|
|||||||
{
|
{
|
||||||
public class TemplateHandlerBase
|
public class TemplateHandlerBase
|
||||||
{
|
{
|
||||||
protected TableEntity Table { get; set; }
|
protected TableAggregateRoot Table { get; set; }
|
||||||
protected List<FieldEntity> Fields { get; set; }
|
|
||||||
|
|
||||||
public void SetTable(TableEntity table)
|
public void SetTable(TableAggregateRoot table)
|
||||||
{
|
{
|
||||||
Table = table;
|
Table = table;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetFields(List<FieldEntity> fields)
|
|
||||||
{
|
|
||||||
Fields = fields;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ using Yi.Framework.Module.WebFirstManager.Entities;
|
|||||||
namespace Yi.Framework.Module.WebFirstManager.Impl
|
namespace Yi.Framework.Module.WebFirstManager.Impl
|
||||||
{
|
{
|
||||||
[ApiDescriptionSettings("WebFirstManager")]
|
[ApiDescriptionSettings("WebFirstManager")]
|
||||||
public class TableService : CrudAppService<TableEntity, TableDto, long, TableGetListInput> ,ITableService, ITransient, IDynamicApiController
|
public class TableService : CrudAppService<TableAggregateRoot, TableDto, long, TableGetListInput> ,ITableService, ITransient, IDynamicApiController
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ using System.Collections.Generic;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using Furion.DatabaseAccessor;
|
||||||
using Furion.DependencyInjection;
|
using Furion.DependencyInjection;
|
||||||
using Furion.DynamicApiController;
|
using Furion.DynamicApiController;
|
||||||
using Mapster;
|
using Mapster;
|
||||||
@@ -19,12 +20,14 @@ namespace Yi.Framework.Module.WebFirstManager.Impl
|
|||||||
[ApiDescriptionSettings("WebFirstManager")]
|
[ApiDescriptionSettings("WebFirstManager")]
|
||||||
public class WebFirstService : ApplicationService, IWebFirstService, IDynamicApiController, ITransient
|
public class WebFirstService : ApplicationService, IWebFirstService, IDynamicApiController, ITransient
|
||||||
{
|
{
|
||||||
private IRepository<TableEntity> _tableRepository;
|
private IRepository<TableAggregateRoot> _tableRepository;
|
||||||
private TemplateManager _templateManager;
|
private CodeFileManager _codeFileManager;
|
||||||
public WebFirstService(IRepository<TableEntity> tableRepository, TemplateManager templateManager)
|
private WebTemplateManager _webTemplateManager;
|
||||||
|
public WebFirstService(IRepository<TableAggregateRoot> tableRepository, CodeFileManager codeFileManager, WebTemplateManager webTemplateManager)
|
||||||
{
|
{
|
||||||
_tableRepository = tableRepository;
|
_tableRepository = tableRepository;
|
||||||
_templateManager = templateManager;
|
_codeFileManager = codeFileManager;
|
||||||
|
_webTemplateManager= webTemplateManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -37,7 +40,7 @@ namespace Yi.Framework.Module.WebFirstManager.Impl
|
|||||||
var tables = await _tableRepository.GetListAsync();
|
var tables = await _tableRepository.GetListAsync();
|
||||||
foreach (var table in tables)
|
foreach (var table in tables)
|
||||||
{
|
{
|
||||||
await _templateManager.HandlerAsync(table);
|
await _codeFileManager.BuildWebToCodeAsync(table);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -55,8 +58,18 @@ namespace Yi.Framework.Module.WebFirstManager.Impl
|
|||||||
/// Code To Web
|
/// Code To Web
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
|
[UnitOfWork]
|
||||||
public async Task PostCodeBuildWebAsync()
|
public async Task PostCodeBuildWebAsync()
|
||||||
{
|
{
|
||||||
|
var tableAggregateRoots =await _webTemplateManager.BuildCodeToWebAsync();
|
||||||
|
//覆盖数据库,将聚合根保存到数据库
|
||||||
|
_tableRepository._Db.DbMaintenance.TruncateTable<TableAggregateRoot>();
|
||||||
|
_tableRepository._Db.DbMaintenance.TruncateTable<FieldEntity>();
|
||||||
|
|
||||||
|
//导航插入即可
|
||||||
|
await _tableRepository._Db.InsertNav(tableAggregateRoots).Include(x => x.Fields).ExecuteCommandAsync();
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -386,11 +386,27 @@
|
|||||||
<param name="code"></param>
|
<param name="code"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="T:Yi.Framework.Module.WebFirstManager.Domain.TemplateManager">
|
<member name="T:Yi.Framework.Module.WebFirstManager.Domain.CodeFileManager">
|
||||||
<summary>
|
<summary>
|
||||||
模板领域服务
|
代码文件领域服务,与代码文件生成相关,web to code
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="T:Yi.Framework.Module.WebFirstManager.Domain.DataBaseManger">
|
||||||
|
<summary>
|
||||||
|
数据库领域服务,与数据库相关,同步到数据库,web to db ,code to db
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:Yi.Framework.Module.WebFirstManager.Domain.WebTemplateManager">
|
||||||
|
<summary>
|
||||||
|
与webfrist相关,同步到web,code to web
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:Yi.Framework.Module.WebFirstManager.Domain.WebTemplateManager.BuildCodeToWebAsync">
|
||||||
|
<summary>
|
||||||
|
通过当前的实体代码获取表存储
|
||||||
|
</summary>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="P:Yi.Framework.Module.WebFirstManager.Dtos.Field.FieldDto.Name">
|
<member name="P:Yi.Framework.Module.WebFirstManager.Dtos.Field.FieldDto.Name">
|
||||||
<summary>
|
<summary>
|
||||||
字段名称
|
字段名称
|
||||||
@@ -471,17 +487,17 @@
|
|||||||
是否公共
|
是否公共
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:Yi.Framework.Module.WebFirstManager.Entities.TableEntity.Name">
|
<member name="P:Yi.Framework.Module.WebFirstManager.Entities.TableAggregateRoot.Name">
|
||||||
<summary>
|
<summary>
|
||||||
表名
|
表名
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:Yi.Framework.Module.WebFirstManager.Entities.TableEntity.Description">
|
<member name="P:Yi.Framework.Module.WebFirstManager.Entities.TableAggregateRoot.Description">
|
||||||
<summary>
|
<summary>
|
||||||
备注
|
备注
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:Yi.Framework.Module.WebFirstManager.Entities.TableEntity.Fields">
|
<member name="P:Yi.Framework.Module.WebFirstManager.Entities.TableAggregateRoot.Fields">
|
||||||
<summary>
|
<summary>
|
||||||
一表多字段
|
一表多字段
|
||||||
</summary>
|
</summary>
|
||||||
|
|||||||
Reference in New Issue
Block a user