2016-03-28 65 views
2

我有一個Conversation類,它對應於數據庫中的多個表。 對話有一個Users的列表作爲字段。我想返回基於Users域是否包含參數LINQ查詢返回列表,基於數據庫字段的屬性

我不確定如何做到這一點的會話列表...

我知道這個代碼不工作,甚至不能編譯,但它應該給的什麼,我試圖做一個想法:

public IHttpActionResult GetConversationForUser(String email) 
{ 

    IQueryable<Conversation> users = from d in db.Conversations 
            where d.Users == email; // I wish to something like **d.Users.Email == email** here but I am unsure how to express this correctly 

    if(users == null) 
    { 
     return NotFound(); 
    } 

    return Ok(); 
} 

回答

3

使用Any擴展方法:

IQueryable<Conversation> users = from d in db.Conversations 
            where d.Users.Any(u=>u.Email== email) 
            select d; 
1

像這樣的東西應該活像k:

public IHttpActionResult GetConversationForUser(String email) 
{ 

    IQueryable<Conversation> users = from d in db.Conversations 
            where d.Users.Any(u=>u.Email == email) 
            select d; 

    //Check if the query returns something not if the query is null, which won't happen 
    if(!users.Any()) 
    { 
     return NotFound(); 
    } 

    return Ok(); 
} 
0

我不確定我是否理解正確的問題。如果我得到正確的,你可以寫

var users = db.Conversations.Where(r => r.Email!= null || !r.Email.Equals(string.Empty))