私は個々のユーザーアカウントを持つASP.NET 5 Webアプリケーションテンプレート(EF7とMVC 6を使用しています)を使用しています。次の問題があります。
私自身のDBSetをApplicationDbContextクラスに追加し、この新しいDBSetを使用しようとしているページに行くと、動作しません。
A database operation failed while processing the request.
SqlException: Invalid object name 'WallMessageModel'.
There are pending model changes for ApplicationDbContext
Scaffold a new migration for these changes and apply them to the database from the command line:
dnx . ef migration add [migration name]
dnx . ef migration apply
今私はこれらのコマンド、または任意の "dnx"コマンドを実行すると私は得る:
CategoryInfo NotSpecified: Error: Unable t...stemindsWebsite:String, RemoteException FullyQualifiedErrorId : NativeCommandError
そして、もし私が "k"コマンドを実行しようとすると、
CategoryInfo : ObjectNotFound: k:String, CommandNotFoundException FullyQualifiedErrorId : CommandNotFoundException
私は"EntityFramework.SqlServer": "7.0.0-beta5", "EntityFramework.Commands": "7.0.0-beta5"
を使用してい"EntityFramework.SqlServer": "7.0.0-beta5", "EntityFramework.Commands": "7.0.0-beta5"
私は7.0.0- *バージョンを使用してみましたが、それでも私のためには動作しません。私は何が間違っているのか教えていただけますか?
基本的には、EFコマンドが私のマシンに正しくインストールされていないと思います(Visual Studio 2015 / PowerShell経由)。しかし、インストールされているものを入手する方法を示すリファレンスはないようです(EF7を使用してVS2015に組み込むべきではありませんか?)。
別のDbSetをApplicationDbContext
クラスに追加するか、他の既存のエンティティクラスを追加/変更すると、ランタイムモデルはデータベースモデルから変更されます。したがって、新しい移行を足場にしてデータベースに適用して、両方のモデルが互いに同期するようにする必要があります。例外メッセージが示唆するように、そうするためにそれらのコマンドを実行する必要があります。
これらのコマンド(または他のdnxコマンド)が実行されていない場合、dnxコマンドはVS2015に組み込まれていません。 Visual StudioのためのMicrosoft ASP.NETとWeb Tools拡張から来ています。 VS用にインストールされていることを確認してください。これにより、dnxコマンドを実行できます。 k
は非常に古い用語で、 dnx
に名前が変更されdnx
。またbeta5は古いバージョンです。最新バージョンはRC1です。これはさらに多くの機能を備えています。 Web Toolsのインストール方法と使用方法の詳細については、 https://get.asp.net/を参照してください。