私は、ユーザーがアカウントを完了するためにいくつかの設定を行うシステムを作成しています。以下を参照してください。
テーブル:
設定タイプ
- ID
- 名前
設定
- ID
- FkSettingTypeId
- IsEmailActivated
- SMS が有効化されている
- インターバル通知
したがって、SettingsType テーブルには次の種類の値があります。
- 時間切れ間近の場合は注意
- 自分のカテゴリのオファーについて警告する
- ...
MVC4 アプリケーションに戻ると、すべての SettingsType を Setting で返すコントローラーを作成して、ユーザーが各 SettingsType の電子メールと SMS を受信するかどうかを選択できる html テーブルを取得する必要があります。
CodeFirst で Entity Framework 4.1 を使用すると、通常のページは次のようなテーブル オブジェクトを返します。
public ActionResult Index()
{
var settings = db.Settings.Include(s => s.SettingsType);
return View(settings.ToList());
}
include ステートメントは内部結合を作成し、Setting に関連付ける必要があるすべての SettingsType を返しません。
左または右の結合を行うコードを記述して、正しいモデルをビューに渡すにはどうすればよいですか :
@model IEnumerable<TenderSystem.Models.Setting>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.SettingsType.Name)
</td>
<td>
@Html.DisplayFor(modelItem => item.IsEmailActivated)
</td>
<td>
@Html.DisplayFor(modelItem => item.IsSMSActivated)
</td>
<td>
@Html.DisplayFor(modelItem => item.IntervalNotification)
</td>
</tr>}
私はこれらのリンクのような多くのことを試しました:
しかし、私は期待するものを達成することはできません。
結論として、SQL から LINQ へのコンバーター ツールを使用して、非常に簡単な SQL 左結合を LINQ に変換すると、ビューで使用できるオブジェクトが返される可能性がありますが、次のエラーが発生しました。エンティティ。
この状況に対処する正しい方法を理解するには、あなたの助けが必要です。
どうもありがとうございました