src/sample/XXX.Plugin.FreeSql/FreeSqlStartup.cs
(开头部分) 3KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using FreeSql;
using MySql.Data.MySqlClient;
using System.Data.SQLite;
using System.Text.RegularExpressions;
using DataType = FreeSql.DataType;
namespace XXX.Plugin.FreeSql
{
public class FreeSqlStartup : INetProStartup
{
public double Order { get; set; } = int.MaxValue;
/// <summary>
///
/// </summary>
/// <param name="services"></param>
/// <param name="configuration"></param>
/// <param name="typeFinder"></param>
public void ConfigureServices(IServiceCollection services, IConfiguration configuration = null, ITypeFinder typeFinder = null)
{
#region Freesql初始化
//多数据库初始化
var idleBus = new IdleBus<IFreeSql>(TimeSpan.FromSeconds(60));
//reference:https://github.com/dotnetcore/FreeSql/issues/44
//第一个注册的实例是默认实例,使用时如没指定dbkey则默认连接此处第一个注册的数据库实例
idleBus.Register("sqlite", () =>
{
var sqlConnectionString = configuration.GetConnectionString("SqliteConnection");
using (var connection = new SQLiteConnection(sqlConnectionString))// "Data Source=LocalizationRecords.sqlite"
{
connection.Open(); // <== The database file is created here.
}
return new FreeSqlBuilder()
.UseConnectionString(DataType.Sqlite, sqlConnectionString)
.UseAutoSyncStructure(true) //true:自动同步实体结构到数据库;false:默认不迁移数据
.Build();
});
idleBus.Register("mysql", () =>
{
var mysqlConnection = configuration.GetConnectionString("MysqlConnection");
using (var connection = new MySqlConnection(mysqlConnection.Replace("Database=netpro_microservice_demo;", "").Replace("database=netpro_microservice_demo;", "")))// "Data Source=LocalizationRecords.sqlite"
{
bool valid = true;
try
{
connection.Open();
}
catch (Exception ex)
{
valid = false;
Console.WriteLine($"mysql连接错误--{ex.Message}");
}
if (valid)
{
using var cmd = new MySqlCommand(@$"Create Database If Not Exists {_getvaluebyConnectstring(mysqlConnection, "Database")} Character Set UTF8", connection);
cmd.ExecuteScalar();
后面还有 33 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。