src/02_Data/Adapters/Data.Adapter.Sqlite/SqliteCodeFirstProvider.cs
(开头部分) 4KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System.IO;
using System.Linq;
using System.Text;
using Dapper;
using Microsoft.Data.Sqlite;
using Microsoft.Extensions.DependencyInjection;
using Mkh.Data.Abstractions;
using Mkh.Data.Abstractions.Descriptors;
using Mkh.Data.Abstractions.Options;
using Mkh.Data.Core;
namespace Mkh.Data.Adapter.Sqlite;
public class SqliteCodeFirstProvider : CodeFirstProviderAbstract
{
public SqliteCodeFirstProvider(CodeFirstOptions options, IDbContext context, IServiceCollection service) : base(options, context, service)
{
}
#region ==创建库==
public override void CreateDatabase()
{
var builder = new SqliteConnectionStringBuilder(Context.Options.ConnectionString);
if (File.Exists(builder.ConnectionString))
{
return;
}
Options.BeforeCreateDatabase?.Invoke(Context);
//SQLite会自动创建数据库文件
using var con = Context.NewConnection();
con.Open();
con.Close();
Options.AfterCreateDatabase?.Invoke(Context);
}
#endregion
#region ==创建表==
public override void CreateTable()
{
foreach (var descriptor in Context.EntityDescriptors.Where(m => m.AutoCreate))
{
CreateTable(descriptor);
}
}
public override void CreateNextTable()
{
var shardingEntities = Context.EntityDescriptors.Where(m => m.AutoCreate && m.IsSharding).ToList();
if (shardingEntities.Any())
{
foreach (var entity in shardingEntities)
{
CreateTable(entity, true);
}
后面还有 105 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
