csharp/2881099/FreeSql.Tools/FreeSql.Tools.DSkin/Models/RazorModel.cs

RazorModel.cs
using FreeSql.DatabaseModel;
using FreeSqlTools.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;

public clast RazorModel {
	public RazorModel(IFreeSql fsql, TaskBuild task, List tables, DbTableInfo table) {
		this.fsql = 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