csharp/2881099/FreeSql.Tools/FreeSql.Tools.WinForm/Common/RazorModel.cs

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