Db First

一、名称转换

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp5.Utils
{
    public static class NameConverter
    {
        /// <summary>
        /// 转换:字段
        /// emp_id -> EmpId
        /// employee_name -> EmployeeName
        /// </summary>
        public static string ToPascalCase(string name)
        {
            if (string.IsNullOrWhiteSpace(name))
                return name;

            string[] parts = name.Split(
                new[] { '_' },
                StringSplitOptions.RemoveEmptyEntries);

            return string.Concat(parts.Select(part =>
            {
                string lower = part.ToLowerInvariant();

                return char.ToUpperInvariant(lower[0]) +
                       lower.Substring(1);
            }));
        }

        /// <summary>
        /// 删除表名前缀
        /// tb_employee -> employee
        /// </summary>
        public static string RemoveTablePrefix(string tableName)
        {
            if (tableName.StartsWith(
                "tb_",
                StringComparison.OrdinalIgnoreCase))
            {
                return tableName.Substring(3);
            }

            return tableName;
        }

        /// <summary>
        /// 转换:表名/文件名
        /// </summary>
        /// <param name="tableName"></param>
        /// <returns></returns>
        public static string ToClassName(string tableName)
        {
            return ToPascalCase(RemoveTablePrefix(tableName));
        }
    }
}

二、格式化类名和属性名

Db.DbFirst.Where("tb_employee")
    .IsCreateAttribute()//创建sqlsugar自带特性
    .FormatFileName(it => NameConverter.ToClassName(it))
    .FormatClassName(it => NameConverter.ToClassName(it))
    .FormatPropertyName(it => NameConverter.ToPascalCase(it))
    .CreateClassFile(@"C:\Users\1872428\Desktop\Models");

 

posted @ 2026-09-29 20:05  市丸银  阅读(4)  评论(0)    收藏  举报