![](/img/trans.png)
[英]How do I only attempt to select data from a table or view when it has a value
[英]How do I add select parameters when reading data for the View?
我正在asp.net中制作MVC 3 Web應用程序。 它應該像一個小社區,用戶可以在此相互發送消息(以后也可以發送給指定的人群)。 因此在我的數據庫中,我有表Users和Messages。 消息中的一行(一條消息)包含發送者和接收者(Users表的外鍵)以及一些其他信息,例如標題,發送日期,當然還有消息文本。
當用戶進入已登錄用戶的索引頁面時,我要顯示已發送給該用戶或該用戶發送的所有消息。 因此,當從“消息”表中讀取消息時,我想使用一個參數,即已登錄用戶的ID(我可以在控制器中訪問該ID)。 所以我有參數,但是在獲取結果時我不知道如何使用它。 我知道必須有一種正確執行此操作的方法,而不是放入一堆sql並以丑陋的方式在代碼中正確啟動連接。
如您現在可能看到的,表中的所有消息都將被檢索並發送到視圖以顯示給用戶。
盡管我一直在關注一些教程,但CommunityEntities行是整個Entity Framework的一部分,雖然不能確切確定它的工作原理,但是仍然不確定:
( 為一個ASP.NET MVC應用程序創建一個實體框架數據模型 )
UserController.cs:
...
CommunityEntities db = new CommunityEntities();
public ActionResult Index()
{
var messages = db.Messages.ToList();
return View(messages);
}
...
CommunityEntities.cs:
public class CommunityEntities : DbContext
{
public DbSet<User> Users { get; set; }
public DbSet<Message> Messages { get; set; }
}
編輯:我確實使用db.Database.SqlQuery(...)嘗試了該操作,但這似乎是錯誤的,因為關鍵是要正確並“整潔”地執行此操作。 這是為了我的教育,我的老師會對應用程序的結構保持謹慎。
您需要一個where
子句:
var messages = db.Messages.Where( m => m.SentById == id || m.SentToId == id ).ToList();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.