3

私はMVCに比較的慣れていません。リモートSQLServerテーブルの内容をページに表示しようとしています。これは読み取り専用であり、オンラインで見つけたほとんどすべてのものは、Entity Frameworkなどを利用していますが、これは私が求めているものには行き過ぎです。テーブルからビューにすべての行を印刷する必要があります。

だから私の質問は:

  1. データを印刷したいビューにsqlconnとすべてをハックする必要がありますか?
  2. または、そのビューのコントローラーにSQLを追加する必要がありますか?
  3. モデルを作成し、どういうわけかそのデータをビューに戻しますか?

ステップ3がそれを行うための「正しい」方法であることは知っていますが、私はシンプルで迅速なものを探しています。:)

みんな、ありがとう!

4

2 に答える 2

5

EF はやり過ぎだとおっしゃいますが、これが最も簡単な方法です。それはより軽量なので、Linq to SQLを使用するかもしれません。これがすべてです:

  1. EF / L2S エンティティ クラスを生成する
  2. コントローラーでデータベース コンテキストをインスタンス化し、すべてのレコードを取得する
  3. IEnumerable レコードをビューに返す
  4. ビューで、使用@Html.DisplayForModel()

簡単な例を次に示します。データベース エンティティ クラスを返すことは悪い習慣と見なされることに注意してください。最初にそれらをビュー モデル型クラスにマップまたは自動マップする必要があります。

ホームコントローラー

public ActionResult Index()
{
    MyEntityModel[] items = MyDatabaseContext.GetAllRows();
    return View(items);
}

ホーム/インデックス ビュー

@model IEnumerable<MyEntityModel>

@foreach (MyEntityModel item in Model)
{
    @Html.DisplayFor(m => item)
}

EF / L2S がなくても、ほぼ同じくらい簡単ですが、データベース レコード用に独自のエンティティ / ラッパー クラスを作成し、手動で入力する必要があります。

リポジトリとコントローラーのクラス、および Razor ビューを生成する MVC のスキャフォールディング プロジェクトもあります。たとえば、NuGet の MVC スキャフォールディングを参照してください。

于 2012-09-14T20:24:36.743 に答える
1

「小さな」アプリケーションであっても Entity Framework を強制的に使用することに慣れると、それが最も簡単な方法であることを本当に理解できるようになります。

確かに、記憶された ADO.NET データセット/データテーブル/データリーダーなどのバックグラウンドから来ている場合は、移植して変更する「既定の」操作を含むプロジェクトがあることを確認してください。ロングラン。

  1. EFを使用
  2. ソリューションで複数のプロジェクトを使用する
  3. 可能であればリポジトリ パターンを使用してください。
  4. コントローラーを「スキニー」に保つ
  5. 使用/実行するためだけに「ViewModel」を使用しないでください。

View と Controller を持つ SOC は重要ですが、Models フォルダーを使用する必要はありません。必要に応じて、それがなくても接続できます。「モデル」がどこにあるかに注意し、SOLID 原則などを順守するだけです。

于 2012-09-14T23:28:35.683 に答える