首页 > 数据库 >C# 数据实体类生成工具 FreeSql.Generator

C# 数据实体类生成工具 FreeSql.Generator

时间:2024-07-02 13:42:09浏览次数:19  
标签:实体类 string Generator C# FreeSql System col using gen

安装和使用方法:传送门(大佬的学习笔记)

dotnet tool install -g FreeSql.Generator

.bat文件:__重新生成.bat

FreeSql.Generator -Razor "__razor.cshtml.txt" -NameOptions 1,0,0,1 -NameSpace MyProject -DB "SqlServer,Data Source=192.168.1.1,1433;Initial Catalog=erp;User ID=sa;Password=admin;Pooling=true;Max Pool Size=5" -FileName "{name}.cs"
pause

.text文件:__razor.cshtml.txt

该模板由这位大佬帮忙修改的:Memoyu
当时是在Gitee下载的FreeSql.Tools的项目自定义的模板,可以直接复制内容过来粘贴使用。

@using FreeSql.DatabaseModel;@{
var gen = Model as RazorModel;

Func<string, string> GetAttributeString = attr => {
	if (string.IsNullOrEmpty(attr)) return null;
	return string.Concat(", ", attr.Trim('[', ']'));
};
Func<DbColumnInfo, string> GetDefaultValue = col => {
    if (col.CsType == typeof(string)) return " = string.Empty;";
    return "";
};
}@{
switch (gen.fsql.Ado.DataType) {
	case FreeSql.DataType.PostgreSQL:
@:using System;
@:using System.Collections;
@:using System.Collections.Generic;
@:using System.Linq;
@:using System.Reflection;
@:using System.Threading.Tasks;
@:using Newtonsoft.Json;
@:using FreeSql.DataAnnotations;
@:using System.Net;
@:using Newtonsoft.Json.Linq;
@:using System.Net.NetworkInformation;
@:using NpgsqlTypes;
@:using Npgsql.LegacyPostgis;
		break;
	case FreeSql.DataType.SqlServer:
	case FreeSql.DataType.MySql:
	default:
@:using System;
@:using System.Collections;
@:using System.Collections.Generic;
@:using System.Linq;
@:using System.Reflection;
@:using System.Threading.Tasks;
@:using FreeSql.DataAnnotations;
		break;
}
}
namespace @gen.NameSpace {

@if (string.IsNullOrEmpty(gen.table.Comment) == false) {
	@:/// <summary>
	@:/// @gen.table.Comment.Replace("\r\n", "\n").Replace("\n", "\r\n		/// ")
	@:/// </summary>
}
	public partial class @gen.GetCsName(gen.FullTableName) {

	@foreach (var col in gen.columns) {

		if (string.IsNullOrEmpty(col.Coment) == false) {
		@:/// <summary>
		@:/// @col.Coment.Replace("\r\n", "\n").Replace("\n", "\r\n		/// ")
		@:/// </summary>
		}
		@:@(gen.GetColumnAttribute(col))
		@:public @gen.GetCsType(col) @gen.GetCsName(col.Name) { get; set; }@GetDefaultValue(col)
@:
	}
	}
@gen.GetMySqlEnumSetDefine()
}

标签:实体类,string,Generator,C#,FreeSql,System,col,using,gen
From: https://www.cnblogs.com/KaryoYou/p/18279727/FreeSqlGenerator

相关文章

  • C++个人学习笔记,Typora编写
    第1章:杂叙1.名字空间namespacexxx在main函数中划分变量空间时,需要指定“xxx::a=1”2.倘若需要使用cin和cout,需要在main函数外使用usingstd::cin;或者从usingstd::cout;标准库中的名字都属于标准名字空间std3.变量存在的意义时为了方便管理内存空间4.程序块内定义内部变......
  • AtCoder Beginner Contest 359 (A ~F)
    A-CountTakahashiQuestion:给你n个单词,要么是Takahashi,要么是Aoki;输出有几个Takahashi即可。Code:#include<bits/stdc++.h>usingnamespacestd;#defineendl'\n'#defineintlonglongtypedeflonglongll;typedefunsignedlonglongull;typedefpair<......
  • MFC控件属性说明
    1.ButtonControl(Name):控件的内部名称,通常用于在代码中引用控件。ID:控件的唯一标识符,用于在资源文件和代码中唯一确定一个控件。帮助ID:与控件相关的帮助文档或帮助主题的标识符。垂直对齐:文本或图标在控件内的垂直对齐方式。默认值:控件是否被设置为默认按钮,即在......
  • BAPI 和 RFC 的区别
    BAPI和RFC的主要区别RFC:是SE37写出来的其中可以远程调用的叫rfc,remote-enabledfunction,abap语法和输入输出参数就会有一些限制。BAPI:是SAP做好的实现待定业务操作的RFC。RFC:是面向过程的,调用简单直接;BAPI:是面向对象的,有属性,方法,有事件。更加的复杂和丰富,更能反映sa......
  • 诺森德塔防游戏启动故障:msvcp110.dll文件缺失的高效解决策略
    《诺森德塔防》是一部以二战为背景的“肉鸽塔防”游戏,拥有着极为火爆的战场表现,让你能充分感受到收割成片敌人的快感,同时在玩法及策略性上都有着突出表现,然而最近很多用户都遇到了启动故障:msvcp110.dll文件缺失的问题,下面一起来看看解决方法介绍吧!重新安装MicrosoftVisualC......
  • ros -slam - microros- PID控制器实现
    上一节我们通过编码器完成了对机器人单个轮子的速度测量,完成了电机速度闭环控制的重要一步-反馈。 有了反馈,接着我们需要设计一个控制器来帮助我们实现这个需求,这个控制器的输入是当前的速度和目标速度,输出是应该给到电机的PWM占空比。一、PID控制器介绍PID控制器是一种广泛应......
  • Swin Transformer:最佳论文,准确率和性能双佳的视觉Transformer | ICCV 2021
    论文提出了经典的VisionTransormer模型SwinTransformer,能够构建层级特征提高任务准确率,而且其计算复杂度经过各种加速设计,能够与输入图片大小成线性关系。从实验结果来看,SwinTransormer在各视觉任务上都有很不错的准确率,而且性能也很高 来源:晓飞的算法工程笔记公众号论......
  • C-特性和新特性
    C++特性和新特性C++11C++11是C++编程语言的一个重要标准版本,是C++98标准发布后13年来的第一次重大修正,它引入了许多新特性和改进,极大地增强了C++语言的表达能力和开发效率。C++11是C++编程语言的一个重要标准版本,由国际标准化组织(ISO)和国际电工委员会(IEC)旗下的C++标......
  • 如何在Oracle、MySQL、PostgreSQL中改变SQL提示格式
    HowtoChangeinSQLPromptformatinOracle,MySQL,PostgreSQL像UNIX的PS1环境变量可以改变shell操作提示符,在日常工作环境中可以提升一些效率可以防止一些误操作,很多年前在看tom关于在练习oracle操作前的一些环境配置像login.sql,比起”SQL>”还可以显示当前的用......
  • 如何在Oracle、MySQL、Postgresql中查找全表扫描SQL
    HowtofindfulltablescanSQLinOracle,MySQL,Postgresql?Queriesthatdo“fulltablescan”aretheonesthatdon’tuseindexes.However,itismoresuitabletouseafulltablescanforsmalltables,anditwillnotcauseperformanceproblems.Or......