RazorModel.cs
using FreeSql;
using FreeSql.DataAnnotations;
using FreeSql.DatabaseModel;
using FreeSql.Internal.CommonProvider;
using FreeSqlTools.Common;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
public clast RazorModel
{
public RazorModel(TaskBuild task, List tables, DbTableInfo table)
{
this.fsql = task.Fsql;
this.task = task;
this.tables = tables;
this.table = table;
}
public IFreeSql fsql { get; set; }
public TaskBuild task { get; set; }
public List tables { get; set; }
public DbTableInfo table { get; set; }
public List columns => this.table.Columns;
public string NameSpace => task.NamespaceName;
public string FullTableName => $"{(new[] { "public", "dbo" }.Contains(table.Schema) ? "" : table.Schema)}.{table.Name}".TrimStart('.');
public string GetCsName(string name)
{
name = Regex.Replace(name.TrimStart('@', '.'), @"[^\w]", "_");
name = char.IsLetter(name, 0) ? name : string.Concat("_", name);
if (task.OptionsEnsaty01) name = UFString(name);
if (task.OptionsEnsaty02) name = UFString(name.ToLower());
if (task.OptionsEnsaty03) name = name.ToLower();
if (task.OptionsEnsaty04) name = string.Join("", name.Split('_').Select(a => UFString(a)));
return name;
}
public string UFString(string text)
{
text = Regex.Replace(text, @"[^\w]", "_");
if (text.Length