質問: b03f5f7f11d50a3a 'はシリアル化可能としてマークされていません。 C:\ Src \ Hcs.NetCore \ packages \ EntityFramework.6.1.3 \ tools \ EntityFramework.psm1:720 char:5 + $ domain.SetData( 'startUpProject'、$ startUpProject)... > > ASP.NET Core Webアプリケーションをアンロードすると、次の手順でEF6の移行をWindowsクラスライブラリに正常に追加できます。 ``` PM> EntityFramework\enable-migrations PM> EntityFramework\add-migration InitialCreate ``` 今私は両方のプロジェクトで初期移行をしています。 しかし、ASP.NET Core Webアプリケーションを実行すると、いくつかの実行時例外が発生します。 System.Data.Entity.DbContextのカスタム実装でパラメータのないコンストラクタがある場合、次のランタイム例外が発生します。 > System.Data.SqlClient.SqlExceptionがユーザーコードによって処理されませんでした。 > メッセージ= SQL Serverへの接続を確立中に、ネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからなかったか、アクセスできませんでした。インスタンス名が正しいこと、およびSQL Serverがリモート接続を許可するように構成されていることを確認します。 (プロバイダ:SQLネットワークインターフェイス、エラー:26 - 指定されたサーバー/インスタンスの指定エラー)â€| > > それは既定のコンストラクタを削除することで修正されました。 ユーザーを登録しようとすると、次の例外がスローされました。 > System.Data.SqlClient.SqlException(0x80131904):ログインで要求されたデータベース "xxx"を開くことができません。ログインに失敗しました。ユーザーyyy \ zzz 'のログインに失敗しました。 System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity ID、SqlConnectionString connectionOptions、SqlCredential資格情報、Object providerInfo、String newPassword、SecureString newSecurePassword、Boolean redirectedUserInstance、SqlConnectionString userConnectionOptions、SessionData reconnectSessionData、DbConnectionPoolプール、String accessToken、Boolean applyTransientFaultHandling) > > Q - 正しい軌道にいるのですか?これは単にSQL Server認証の問題ですか?または、他の問題が関与していますか?
回答: â€œException "2"引数例外を持つ "SetData"を呼び出す:â€ ========================================== `â€œException calling "SetData" with "2" argument(s) exception:â€`は、次のコマンドで`-StartupProject`または`-StartupProjectName`パラメータを渡すことで解決できます。 パッケージマネージャコンソールで、デフォルトプロジェクトをEF6コンテキスト(私の場合はDna.Net.Application.DAL.EF6)を含むクラスライブラリに設定し、次のコマンドを実行します。 ``` PM> EntityFramework\enable-migrations -StartupProject Dna.Net.App.DAL.EF6 PM> EntityFramework\add-migration InitialCreate -StartupProjectName Dna.Net.App.DAL.EF6 ``` "System.Data.SqlClient.SqlException(0x80131904):ログインで要求されたデータベース" xxx "を開くことができません。ログインに失敗しました。 ================================================================================================ " `â€œSystem.Data.SqlClient.SqlException (0x80131904): Cannot open database "xxxâ€ requested by the login. The login failed.â€`新しいユーザーを保存するときに**`[Apply Migrations]`**ボタンをクリックすると、実行することで、デザイン時のアカウント、 **または** 、 **`Update-Database`**次のように: パッケージマネージャコンソールで、デフォルトプロジェクトをEF6コンテキストを含むクラスライブラリに設定し、次を実行します。 ``` PM> EntityFramework\Update-Database -StartupProject Dna.Net.Application.DAL.EF6 ``` パッケージマネージャコンソールで、デフォルトプロジェクトをEFコアコンテキストを含むクラスライブラリに設定し、次を実行します。 ``` PM> EntityFrameworkCore\Update-Database ``` この時点で、サーバーエクスプローラまたはSQL Serverオブジェクトエクスプローラを使用してデータベースを検査できます。 `Update-Database`コマンドは、EFCoreおよびEF6コンテキスト用の一意のデータベースを作成しました。 このソリューションは、 ASP.NET CoreおよびEntity Framework 6入門の「サンプルアプリケーション」セクションに含まれるガイドラインに従いますが、次の例外があります。 * `IDbContextFactory`を実装する必要はありません`IDbContextFactory` 。 これで、次のテストを正常に実行できます。 * ASP.NET Core MVC個別ユーザーアカウントスキャフォールディングを介してユーザーを追加します。 * (ASP.NET Core MVC scaffolded)HomeController.About()をカスタムSystem.Data.Entity.DbContext実装に永続化して取得するように変更します。 * 永続化されたカスタムエンティティを表示するには、About.cshtmlを変更します。