Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 整洁地摆桌子_C#_Sqlite_Dapper - Fatal编程技术网

C# 整洁地摆桌子

C# 整洁地摆桌子,c#,sqlite,dapper,C#,Sqlite,Dapper,我是Dapper的新手,目前正在尝试填充我的新数据库。 由于Dapper无法直接从模型创建表,我应该如何填充数据库?除了从变量执行模式之外,还有什么好的实践吗 目前,我正在使用这种(肮脏的方法): Dapper不能像实体框架那样生成表。因此,您可以将EF与代码优先方法结合使用。如果您想使用Dapper,您可以使用migrator工具,如和生成db。我发现EF对于我的需要来说太重了。所以基本上,我所描述的方式是我喜欢的方式?是否至少有帮助者可以帮助确定数据库是否存在并已填充?或者,我必须在每个方法

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

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


Dapper不能像实体框架那样生成表。因此,您可以将EF与代码优先方法结合使用。如果您想使用Dapper,您可以使用migrator工具,如和生成db。

我发现EF对于我的需要来说太重了。所以基本上,我所描述的方式是我喜欢的方式?是否至少有帮助者可以帮助确定数据库是否存在并已填充?或者,我必须在每个方法调用中手动检查它?例如:?首先,即使您使用此方法,也不必每次都执行该脚本。我假设您创建了桌面应用程序(Sqlite Db让我想到了这一点),您可以在应用程序启动时执行脚本。如果选择使用Fluent Migrator(FM),则可以编写用于创建、更改和删除表的C代码。创建迁移代码时,FM的脚本/代码会自动存储在Db中以进行版本控制。由于这一点,您不必检查关于Db模型的任何内容。
 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);
        }
    }