Microsoft.EntityFrameworkCore.SQLite
を使用して、データベースのコードレベルの作成を作成し、テーブルに単純な行を追加しようとしています。私はエラーSQLite error: no such table Jumplists
を得ます。まず、ここでは他の2つのクラスが、ここで繰り返す価値がないクラステーブルの作成Entity FrameworkのコアとSQLite
using JumpList_To_Clipboard.Data.Tables;
using Microsoft.EntityFrameworkCore;
namespace JumpList_To_Clipboard.Data
{
public class DataSQLite : IData
{
public const string DATABASE = "data.sqlite";
public DataSQLite()
{
using (var db = new SQLiteDbContext(DATABASE))
{
// Ensure database is created with all changes to tables applied
db.Database.Migrate();
db.JumpLists.Add(new JumpList { Name = "Default" });
db.SaveChanges(); // Exception thrown here
}
}
}
}
DbContextクラス
using JumpList_To_Clipboard.Data.Tables;
using Microsoft.EntityFrameworkCore;
namespace JumpList_To_Clipboard.Data
{
class SQLiteDbContext : DbContext
{
readonly string db_path;
public DbSet<JumpList> JumpLists { get; set; }
public DbSet<Group> Groups { get; set; }
public DbSet<Item> Items { get; set; }
public SQLiteDbContext(string database) : base()
{
db_path = database;
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlite(string.Format("Data Source={0}", db_path));
}
}
}
ジャンプリストクラス
using System.Collections.Generic;
namespace JumpList_To_Clipboard.Data.Tables
{
public class JumpList
{
public int JumpListId { get; set; }
public string Name { get; set; }
public List<Group> Groups { get; set; }
public List<Item> Items { get; set; }
}
}
あるために、最後から
、エラーを出さないでください。
data.sqlite
ファイルを見るためにfirefox sqlite拡張機能を使用すると、私の3つの表は表示されません。
コマンドdb.DataBase.Migrate
は
は、データベースへのコンテキストのために保留中のマイグレーションを適用しますと言います。
pending migrations
とは何ですか?私はどこにもドキュメンテーションを見つけることができない。
が私からの例を組み合わせています:
- https://docs.microsoft.com/en-us/ef/core/get-started/netcore/new-db-sqlite
- https://blogs.msdn.microsoft.com/dotnet/2016/09/29/implementing-seeding-custom-conventions-and-interceptors-in-ef-core-1-0/
編集:私はそれが動作db.Database.Migrate();
db.Database.EnsureCreated();
と交換場合。ドキュメントのMigrate()
は同じですが、EnsureCreated()
にはないテーブル構造の更新を作成することができます。よくわかりません。
ここでは、EFコアの移行に関するMicrosoftの文書を見つけるのが非常に難しいです:https://docs.microsoft.com/en-us/aspnet/core/data/ef-mvc/migrations – bricelam
@bricelam「Getting Started "そのページ、私はその時に探していたものではなかったからです。 WCFとEFCをバインドして、私は前に進みました。知っておいてよかった。私はあなたが皮肉っていると思うが、公式の文書[Getting Started](https://docs.microsoft.com/en-us/ef/core/get-started/)と[EF Core with WPF and .Net ](https://docs.microsoft.com/en-us/ef/core/get-started/full-dotnet/)と私の言いたいことがわかります。彼らは引用されていないブログの例を含んでいません。もしあなたがそれを修正したら、綴じ目の投稿を追加し、コンボボックスでブログを選択し、コードとxamlの中に投稿を埋め込む。 –
風刺はありません。深刻な文書の欠如があり、そこにある文書は見つけたり、移動することが不可能です。 – bricelam