2011-10-15 42 views
0

我正在asp.net中製作一個MVC 3 web應用程序。它應該像一個小社區,用戶可以互相發送消息(之後也可以發送給特定的人羣)。所以在我的數據庫中我有表用戶和消息。消息(消息)中的一行包含發送者和接收者(用戶表的外鍵)以及一些其他信息,例如標題,發送日期以及消息文本。如何在查看數據時添加選擇參數?

當用戶進入登錄用戶的索引頁面時,我想要顯示已發送給此用戶的所有郵件或發送給此用戶的所有郵件。因此,當從Messages表中讀取消息時,我想使用一個參數,登錄用戶的ID(我可以在控制器中訪問它)。所以我有參數,但我不知道如何在獲得結果時使用它。我知道必須有一種方法來正確執行此操作,而不是在代碼中插入一堆sql和啓動連接,這種方式很醜陋。

正如你現在可以看到的,全部來自表格的消息將被檢索併發送到視圖以將其顯示給用戶。

的CommunityEntities線是整個實體框架的東西的一部分,不能完全確定這些東西是如何工作的呢,雖然我一直在關注一些教程:

Creating-an-entity-framework-data-model-for-an-asp-net-mvc-application

Mvc-music-store-part-1)。

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(...),但那個東西似乎是錯誤的,看到的重點是正確地做到這一點和「整潔」。這是爲了我的教育,我的老師會在應用程序的結構上挑剔。

回答

1

你需要一個where條款:

var messages = db.Messages.Where(m => m.SentById == id || m.SentToId == id).ToList(); 
+0

哈利路亞!做到了! :D編輯:謝謝! –

相關問題