簡體   English   中英

實體框架 - 使用lambda表達式編寫查詢

[英]Entity Framework - writing query using lambda expression

我剛剛啟動了Entity Framework&linq並編寫了這個查詢

 var query = from rp in db.UM_RolePermission
             where (from ru in db.UM_RoleUser 
             where ru.UM_User.UserID == userId select ru.RoleID).Contains(rp.RoleId)
             select rp;

上面工作正常並滿足我的需要,但是我正在嘗試使用lambda表達式來理解這一點。

我試過自己寫這個,但我無法完成它。

var query1 = db.UM_RolePermission
             .Where(rp => (from ru in db.UM_RoleUser where ru.UM_User.UserID == userId select ru.RoleID).Contains(rp.RoleId));

有人可以完成這個嗎?

關系:

UM_RoleUser and UM_User

謝謝

var query = db.UM_RolePermission
            .Where(rp => db.UM_RoleUser
                         .Where(ru => ru.UM_User.UserID == userId)
                         .Select(ru => ru.RoleID)
                         .Contains(rp.RoleId))

我將繼續前進並假設您已經在多對多關系中定義了RolePermission和RoleUser之間的關系? 這將使你的生活變得更加簡單。

var query1 = db.UM_RoleUser
    .Where(ru => ru.UserId == userID)
    .SelectMany(rp => rp.RolePermissions);

當然,這取決於你如何建立你的人際關系。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM