c# - 在 Dapper 中设置表

标签 c# sqlite dapper

我是 Dapper 的新手,目前我正在尝试填充我的新数据库。 由于 Dapper 无法直接从模型创建表,我应该如何填充我的数据库?除了从变量执行模式外,还有什么好的做法吗?

目前,我正在使用这个(肮脏的方法):

 public void CreateTables()
    {
        using (var connection = GetSQLiteHandle())
        {
            string sql = @"
                CREATE TABLE IF NOT EXISTS statistics (
                    id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
                    name TEXT NOT NULL,
                    value TEXT NOT NULL
                );
                CREATE TABLE IF NOT EXISTS posts (
                    id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
                    content TEXT NOT NULL,
                    created TEXT NOT NULL
                );
                CREATE TABLE IF NOT EXISTS names (
                    id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
                    name TEXT NOT NULL
                );
                CREATE TABLE IF NOT EXISTS users (
                    id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
                    username TEXT NOT NULL,
                    email TEXT NOT NULL,
                    created TEXT NOT NULL
                );
                CREATE TABLE IF NOT EXISTS storage (
                    id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
                    key TEXT NOT NULL,
                    value TEXT NOT NULL
                );
            ";
            connection.Execute(sql);
        }
    }

最佳答案

Dapper 没有像 Entity Framework 那样生成表的能力。因此,您可以将 EF 与代码优先方法结合使用。如果你想使用 Dapper,你可以使用迁移器工具,例如 fluent migrator并用它生成数据库。

关于c# - 在 Dapper 中设置表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50497535/

相关文章:

c# - 未返回 Active Directory 组

c# - 使用其中的字符串编码结构时出现 PInvoke 错误

java - 使用 latin-1 编码插入数据

python - os.environ 对 C 扩展模块的可见性

c# - Dapper 和 Npgsql 通过使用带有 IN 子句和 List<int> 的 EXPLAIN 抛出异常

c# - .NET Core 3.1 控制台应用作为 Windows 服务

c# - 将页面对象与 Selenium 结合使用时检查 WebElement 是否存在

java - 没有 moveToFirst 的 Cursor.moveToNext

c# - Dapper - 通过构造函数处理具有只读字段的 ddd 实体的自定义映射

c# - Dapper For MySQL Query<T>(string sql) sql 有一个自定义变量(@rowNum) 包含一个特殊字符 @