質問: 1 StackTrace:Microsoft.Data.Sqlite.Interop.MarshalEx.ThrowExceptionForRC(Int32 rc、Sqlite3Handle db)Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehaviorビヘイビア)Microsoft.Data.Sqlite.SqliteCommand.ExecuteDbDataReader(CommandBehavior動作)をSystem.Data.Common.DbCommand.ExecuteReader()でMicrosoft.Data.Entity.Query.Internal.QueryingEnumerable.Enumerator.MoveNext()でSystem.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()でSystem.Linq .Enumerable.d__1`2.MoveNext()System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()、Microsoft.Data.Entity.Query.LinqOperatorProvider.ExceptionInterceptor`1.EnumeratorExceptionInterceptor.MoveNext()System.Collections.Generic System.Linq.Enumerable.ToList(System.Linq.Enumerable.ToList(IEnumerable`1 source))の.List:1 ....ctor(IEnumerable`1コレクション)は、d:\ arthur \ documents \のEFGetStarted.AspNet5.Controllers.BlogsController.Indexビジュアルスタジオ2015 \ Projects \ EFGetStarted.AspNet5 \ src \ EFGetStarted.AspNe t5 \ Controllers \ BlogsController.cs:regel 18 InnerException: > > 私はこれが「Blog」と呼ばれるテーブルがないかのようにこれを理解しますが、SQLiteのDB Browserで.dbファイルを開くと、実際には「Blog」というテーブルがあります。 ![DB BrowserからSQLite用のスクリーンショットを開き、 'Blog'という表を表示します。](https://i.stack.imgur.com/37kPn.png) SQLiteはコード内で他の変更を必要としますか?これはEntity FrameworkのSQLiteコネクタでエラーですか?
回答: EFが実際に開いているデータベースは、DBブラウザで開いているファイルではない可能性が非常に高いです。 SQLiteはプロセスの現在の作業ディレクトリを使用します。これはIISや他のサーバで起動された場合、ソースコードディレクトリと異なるフォルダになります。 ( およびhttps://github.com/aspnet/Microsoft.Data.Sqlite/issues/55の問題を参照)。 dbファイルが適切な場所にあることを確認するには、絶対パスを使用します。例: ``` public class Startup { private IApplicationEnvironment _appEnv; public Startup(IApplicationEnvironment appEnv) { _appEnv = appEnv; } public void ConfigureServices(IServiceCollection services) { services.AddEntityFramework() .AddSqlite() .AddDbContext( options => { options.UseSqlite($"Data Source={_appEnv.ApplicationBasePath}/data.db"); }); } } ```