Common/Gardener.Common/GenerateSeedDataTool.cs
(开头部分) 4KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
// -----------------------------------------------------------------------------
// 园丁,是个很简单的管理系统
// gitee:https://gitee.com/hgflydream/Gardener
// issues:https://gitee.com/hgflydream/Gardener/issues
// -----------------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
namespace Gardener.Common
{
/// <summary>
/// 生成种子数据工具
/// </summary>
public static class SeedDataGenerateTool
{
/// <summary>
/// 生成种子数据
/// </summary>
/// <param name="request"></param>
/// <param name="entityName"></param>
/// <returns></returns>
/// <remarks>
/// 根据搜索条叫生成种子数据
/// </remarks>
public static string Generate<TEntity>(IEnumerable<TEntity> datas,string? entityName=null)
{
if (datas==null || !datas.Any())
{
return string.Empty;
}
entityName = entityName ?? typeof(TEntity).Name;
StringBuilder sb = new StringBuilder();
sb.AppendLine("/// <summary>");
sb.AppendLine("/// 种子数据");
sb.AppendLine("/// </summary>");
sb.AppendLine($"public class {entityName}SeedData : IEntitySeedData<{entityName}>");
sb.AppendLine("{");
sb.AppendLine(" /// <summary>");
sb.AppendLine(" /// 种子数据");
sb.AppendLine(" /// </summary>");
sb.AppendLine(" /// <param name=\"dbContext\"></param>");
sb.AppendLine(" /// <param name=\"dbContextLocator\"></param>");
sb.AppendLine(" /// <returns></returns>");
sb.AppendLine($" public IEnumerable<{entityName}> HasData(DbContext dbContext, Type dbContextLocator)");
sb.AppendLine(" {");
sb.AppendLine(" return new[]{");
foreach (var item in datas)
{
if (item == null) { continue; }
Type type = item.GetType();
PropertyInfo[] properties = type.GetProperties(BindingFlags.Public | BindingFlags.Instance);
sb.Append($" new {entityName}()");
sb.Append(" {");
foreach (PropertyInfo property in properties)
{
后面还有 58 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
