私は素晴らしい仕事をしているEFアプリケーションを持っていますが、それはシッククライアントです。私はAzureとMSのコア2フレームワークを使用してサービスを利用したいと思っていました。私は、Web APIをそのままの状態で構築します。それがうまくいくかテストしてみてください。次に、EFを使用して爆弾を使用するDataAccessライブラリへの参照を追加しましょう。 OuopsはNuGetを通じて新しいプロジェクトにEFを追加するのを忘れていました。接続文字列への参照が見つからないことがわかります。わかりましたので、私はそう(すでにWPFのクライアントのプロジェクトにどのような作品からのコピー)などのローカル・インスタンス・データベースへappsettings.jsonでそれをワイヤー:EF 6.2で既存のデータプロジェクトをデータベースの最初の方法でWeb API Core2 Controllerにロードするにはどうすればよいですか?
{
"Logging": {
"IncludeScopes": false,
"Debug": {
"LogLevel": {
"Default": "Warning"
}
},
"Console": {
"LogLevel": {
"Default": "Warning"
}
}
},
"ConnectionStrings": {
"ExpensesEntities": "metadata=res://*/Expenses.csdl|res://*/Expenses.ssdl|res://*/Expenses.msl;provider=System.Data.SqlClient;provider connection string="data source=.;initial catalog=Expenses;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework""
}
}
そして私はそうのように私のスタートアップを変更します。
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddScoped(_ => new MoneyEntry.DataAccess.ExpensesEntities());
}
私はそれが
'FileNotFoundException: Could not load file or assembly
'System.Configuration.ConfigurationManager,
Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'.
The system cannot find the file specified.'
言って私のコンテキストを取得し、破るしようとすると見ることができますしかし、それは、EFコンテキストのこのセクションに壊しています
public ExpensesEntities()
: base("name=ExpensesEntities")
{
}
だから私はちょうど正しい順序で接続文字列の参照を持つ必要があると私はかなり確信して、私は接続文字列または設定のいくつかの種類の読み込みどこに行っています。私はこのスレッドに従っていた:https://docs.microsoft.com/en-us/ef/core/miscellaneous/connection-strings
私の他の懸念は、EFフレームワークを混在させることができますか?私はデータアクセスレイヤーをEF 6.1.3に書きました。6.2にアップグレードしましたが、.NET Coreには独自のライブラリがあります。 EF.NET CoreとEF.NET Frameworkを混在させることはできますか?コアでもDALを書き直そうとするべきですか?それが何であれ、それは好きではないように見えます。そして、私はそれがどのように動作するかを見るために最初から自己完結型のモデルを追加できるかどうかを試してみるかもしれません。しかし、少し便利です私は、人々が新しい.NETコア2
EDIT 11-15-17オーケー に経験ブレンドフレームワークを持っていた場合ので、このリンクhttps://docs.microsoft.com/en-us/aspnet/core/data/entity-framework-6#handle-connection-strings以下を参照してくださいするように依頼だろうと思いました。しかし、コード一番の方法論を前提としているだけでなく、依存性注入を望むという理由で、APIだけではなくMVCサイトを行っています。簡単にするには、まずDatabaseでこれを行い、appsettingsにEF接続文字列を認識させるだけですか?過去に別のプロジェクトを作成し、EFセクションをコピーして新しいアプリケーション設定に貼り付けるだけで、うまく動作します。
"Expenses": "Server=.;Database=Expenses;Trusted_Connection=True;MultipleActiveResultSets=true"
は、私が唯一のId int型のプロパティを持っている私の最も簡単なテーブルのいずれか、および文字列説明プロパティを使用:ASP.NETコア2がのAppSettingsを使用しているので、私は次のようにシンプルな接続文字列を行うことを試みました。また、私はちょうどそうのようなデータを取得しようとしているブレークポイントにヒットしたときに、コントローラを読み込むに爆弾:
var data = await _context.tdType.ToListAsync();
return View(data);
と私はキーを定義する必要があり、最初のコードを使用しています前提としています。私は、EF Coreがモデルの最初の動作を処理できないと仮定していますか?コード1の方法論で生成されたPOCOを飾る必要がありますか?もしそうなら、私はEF全体のコードを最初に再作成し、プロシージャとビューをどのように扱うかを考慮する必要があるかもしれません。
これを理解するための鍵は、私が使用しているこのモデルがビュー、関数、およびプロシージャを持っていると思います。私が最初にコードの知っている少しから、DbSetオブジェクトのマッピングオプションを更新して、Insert、Update、Deleteオプションをオーバーライドすることができます。しかし、テーブルに直接関係しない複数の操作であるビュー、関数、およびプロシージャは、本当にミステリーです。それは、EF Coreが単にフル機能を十分に備えていない可能性があります。しかし、その理由のために、私は既存のEF 6.2を後ろにしているピギーがこれを修正するだろうと考えました。
あなたが the docsから、直接ネットコアでEF 6コンテキストを使用することはできません
誰も本当に質問に答えた。レスポンスの多くの部分では、具体的な内容や読み方が不足していました。私は、細かくない回答には、恩恵を意図的に与えるつもりはありません。もし誰かが言いたいのであれば: "データベースは最初に動作しません"、ここに記事がありますが、それはどうしてですか?それがMSの立場なら、私はそれでいいです。しかし、私はそれが以前よりももっと働くようになっているという事実を知っていますし、.NETからFROM COREの私の参照プロジェクトに戻っています。だから、ちょうどヒアリング: "この他の技術を試して"または "ちょうどコードを最初に行う"は本当に質問に答えることさえ試みていません。 – djangojazz