namespace LinCms.Core.Entities;
using FreeSql;
class Program
{
static void Main(string[] args)
{
// 导出表
// dotnet tool install -g FreeSql.Generator
// FreeSql.Generator -Razor 2 -NameOptions 0,0,0,1 -NameSpace LinCms.Core.Entities -DB "Oracle,Data Source=xxxxx"
// 创建项目
// dotnet new console -n FreeSqlDbFirstDemo
// cd FreeSqlDbFirstDemo
// dotnet add package FreeSql
// dotnet add package FreeSql.Provider.Sqlite
// dotnet add package FreeSql.DbFirst
// dotnet add package Newtonsoft.Json
// 1. 配置 FreeSql
var fsql = new FreeSqlBuilder()
.UseConnectionString(DataType.Sqlite, "Data Source=test.db")
.UseAutoSyncStructure(true) // 自动同步实体结构到数据库
.Build();
// 2. 创建数据库和表
CreateDatabaseAndTables(fsql);
Console.WriteLine("程序执行完成!");
}
/// <summary>
/// 创建数据库和表
/// </summary>
static void CreateDatabaseAndTables(IFreeSql fsql)
{
Console.WriteLine("\n开始创建数据库和表...");
// 创建数据库(如果不存在)
fsql.Ado.ExecuteNonQuery("ATTACH DATABASE 'test.db' AS test");
// 使用实体类创建表
// find . -name "*.cs" -exec basename {} .cs \;
// DisableSyncStructure = false 全局替换 DisableSyncStructure = false
// find . -name "*.cs" -exec sed -i 's/DbType = ".*",//g' {} \;
// find . -name "*.cs" -exec sed -i 's/DbType = ".*"//g' {} \;
// find . -name "*.cs" -exec sed -i 's/, )]/ )]/g' {} \;
fsql.CodeFirst.SyncStructure<ACTIONS>();
fsql.CodeFirst.SyncStructure<AUTHENTICATION>();
fsql.CodeFirst.SyncStructure<AUTHENTICATIONBACK>();
fsql.CodeFirst.SyncStructure<FUNCTIONS>();
fsql.CodeFirst.SyncStructure<GAMAPPINGS>();
fsql.CodeFirst.SyncStructure<GFMAPPINGS>();
fsql.CodeFirst.SyncStructure<GROUPS>();
fsql.CodeFirst.SyncStructure<LOG>();
fsql.CodeFirst.SyncStructure<MEMBERSHIP>();
fsql.CodeFirst.SyncStructure<ORGANIZATION>();
fsql.CodeFirst.SyncStructure<PFMAPPINGS>();
fsql.CodeFirst.SyncStructure<PRODUCTS>();
fsql.CodeFirst.SyncStructure<RAMAPPINGS>();
fsql.CodeFirst.SyncStructure<RFMAPPINGS>();
fsql.CodeFirst.SyncStructure<ROLES>();
fsql.CodeFirst.SyncStructure<ROLETAG>();
fsql.CodeFirst.SyncStructure<UOMAPPINGS>();
fsql.CodeFirst.SyncStructure<USERINFO>();
fsql.CodeFirst.SyncStructure<USERS>();
fsql.CodeFirst.SyncStructure<USERSINGROUPS>();
fsql.CodeFirst.SyncStructure<USERSINROLES>();
Console.WriteLine("数据库和表创建完成!");
}
}