MVC EFを使用して、id以外のフィールドで結果をフィルタリングするにはどうすればよいですか?MVCでwhere句を使用する方法
return View(db.Drafts.Where(PublicationId=id));
PublicationIdは、Draftsテーブルの列です。
何か助けていただければ幸いです。
MVC EFを使用して、id以外のフィールドで結果をフィルタリングするにはどうすればよいですか?MVCでwhere句を使用する方法
return View(db.Drafts.Where(PublicationId=id));
PublicationIdは、Draftsテーブルの列です。
何か助けていただければ幸いです。
public ActionResult Index(int id)
{
var drafts = db.Drafts.Where(d => d.PublicationId == id).ToList();
return View(drafts);
}
または(idが通常一意であるだって)あなたは、単一のドラフトをしたい場合:あなたは、ラムダに精通
public ActionResult Index(int id)
{
var draft = db.Drafts.SingleOrDefault(d => d.PublicationId == id);
return View(draft);
}
私はあなたのDraft
クラスがどのように見えるかわからないんだけど、のは、それはこのようなものになりますふりをしてみましょう:あなたはこのようなクエリを書くことができ
public class Draft
{
public int Id { get; set; }
public int PublicationId { get; set; }
public string Name { get; set; }
}
を:
return View(db.Drafts.Where(d => d.Name == "foo"));
これだけでしょう"foo"という名前のドラフトを返します。これはおそらく有用ではないでしょう。あなたは以上の可能性があなたのコントローラ(クエリ文字列、フォーム値、ルート値、など)にデータを渡すことによってこれを制御したい:
public ActionResult Index(int id, string filter)
{
return View(db.Drafts.Where(d => d.Name == filter));
}
それとも、複数のプロパティに基づいてフィルタリングできます。
public ActionResult Index(int id, string filter)
{
return View(db.Drafts.Where(d => d.Name == filter && d.PublicationId == id));
}
ありがとうございました。それはまた役に立つ答えです。 – alockrem
d変数はどこから来ますか?その手紙は重要ですか?よろしくお願いします。 –
@DannyRancherラムダ式です。手紙は重要ではありませんが、スコープに関するいくつかの制限があります。 – Dismissile
+1:私は 'SingleOrDefault'に過負荷があることを知らなかった。 –