MVC と Entity Framework は初めてなので、複雑なデータ クエリを実行する際にかなりの問題が発生しました。データベース ファーストのアプローチを使用しています。関連するデータを別のデータベースからプルする最善の方法を理解する必要があります。データベースに接続し、edmx ファイルと既存のデータベースからのモデルを作成しました。問題の例を単純化します。従業員情報を含むテーブルが 1 つある場合:
Employee_Information(EmployeeID, FullName, Address, Phone)
次に、(別のデータベースに)2番目があります
Employee_Achievements(EmployeeID, Achievement, DateAchieved)
これら 2 つを結び付けて、従業員の情報 (名前、住所など) をビューに表示するにはどうすればよいですか? 私の最初の考えは、結合を行い、それをビューに渡すことでした:
var employee = from emp in db.EmployeeAchievements
join empInfo in emp_db.EmployeeInformation
emp.EmployeeID == empInfo.EmployeeID
これに関する問題は、複数のモデルがビューに渡される ViewModel を既に使用していることです。ビューで次のようなものを使用して、一度に複数の従業員の情報を結び付ける機能が必要です。
@for (int i = 0; i < model.EmployeeAchievements.Count; i++)
{
<tr valign="top">
<td>
<div class="editor-field">
@Html.EditorFor(model => model.EmployeeAchievements[i].EmployeeID)
@Html.ValidationMessageFor(model => model.EmployeeAchievements[i].EmployeeID)
</div>
</td>
// Display employee name next
ViewBag の使用の可能性は? または、データベース間で外部キーを関連付ける方法はありますか? これはデータベース ファーストであるため、edmx ファイルとモデル ファイルが生成されることに注意してください。ここでやろうとしていることの良い例を見つけることができませんでした。助けていただければ幸いです。必要に応じて詳細を提供できます。