src/02_Data/Adapters/Data.Adapter.Sqlite/SqliteSchemaProvider.cs

(开头部分) 2KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using Dapper;
using Microsoft.Data.Sqlite;
using Mkh.Data.Abstractions.Schema;

namespace Mkh.Data.Adapter.Sqlite;

/// <summary>
/// MySql数据库架构提供器
/// </summary>
public class SqliteSchemaProvider : ISchemaProvider
{
    private readonly IDbConnection _con;
    public SqliteSchemaProvider(IDbConnection con)
    {
        _con = con;
    }

    public SqliteSchemaProvider(string connectionString)
    {
        _con = new SqliteConnection(connectionString);
    }

    public bool IsExistsDatabase(string database)
    {
        throw new Exception("Sqlite不支持该方法~");
    }

    public bool IsExistsTable(string database, string table)
    {
        var sql = $"SELECT 1 FROM sqlite_master WHERE tbl_name='{table}' AND type='table' LIMIT 1;";
        return _con.ExecuteScalar<int>(sql) > 0;
    }

    public List<DatabaseSchema> GetDatabases()
    {
        throw new Exception("Sqlite不支持该方法~");
    }

    public DatabaseSchema GetDatabase(string database)
    {
        throw new Exception("Sqlite不支持该方法~");
    }

    public List<TableSchema> GetTables(string database)
    {
        var sql = "SELECT tbl_name AS [Name] FROM sqlite_master WHERE type='table';";
        var tables = _con.Query<TableSchema>(sql).ToList();
        foreach (var table in tables)
        {
            table.Columns = GetColumns(database, table.Name);
        }

        return tables;
    }

    public List<ColumnSchema> GetColumns(string database, string table)
后面还有 24 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。