1

私は、ユーザーがアカウントを完了するためにいくつかの設定を行うシステムを作成しています。以下を参照してください。

テーブル:

設定タイプ

  1. ID
  2. 名前

設定

  1. ID
  2. FkSettingTypeId
  3. IsEmailActivated
  4. SMS が有効化されている
  5. インターバル通知

したがって、SettingsType テーブルには次の種類の値があります。

  1. 時間切れ間近の場合は注意
  2. 自分のカテゴリのオファーについて警告する
  3. ...

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>}

私はこれらのリンクのような多くのことを試しました:

  1. Entity Framework コードの最初の左結合
  2. 流暢な API サンプル

しかし、私は期待するものを達成することはできません。

結論として、SQL から LINQ へのコンバーター ツールを使用して、非常に簡単な SQL 左結合を LINQ に変換すると、ビューで使用できるオブジェクトが返される可能性がありますが、次のエラーが発生しました。エンティティ。

この状況に対処する正しい方法を理解するには、あなたの助けが必要です。

どうもありがとうございました

4

1 に答える 1

1

インクルードは、コンストラクターの 1 つの下の文字列としての子のモデル名にすぎないと思います。ここにEF5のリンクがあります。

http://msdn.microsoft.com/query/dev11.query?appId=Dev11IDEF1&l=EN-US&k=k ("System.Data.Entity.Infrastructure.DbQuery`1.Include");k(含める);k( TargetFrameworkMoniker-.NETFramework,Version%3Dv4.5);k(DevLang-csharp)&rd=true

または短縮... http://bit.ly/SOEttF

私は WebAPI を使用しているため、戻り値は IQueryable を必要とし、これは私にとってはうまくいきます。

    [AcceptVerbs("GET")]
    public IQueryable<Run> Runs()
    {
        var rx  = _contextProvider.Context.Runs
            .Include("RunOutlineItems")
            .AsQueryable()
            .Where(r => r.RunStatusId < 4);

        return rx;
    }

この回答も確認してください Join and Include in Entity Framework

于 2012-12-18T23:49:38.833 に答える