iT邦幫忙

0

想請問這段LINQ程式碼如何看?

  • 分享至 

  • xImage

我最近有看到兩段LINQ程式碼
大概如下

 Expression<Func<Base_User, Base_Department, Base_UserDTO>> select = (a, b) => new Base_UserDTO
            {
                DepartmentName = b.Name
            };

這段是Expression嗎?我能請問他是在什麼狀況下這樣使用呢?
能不用這樣寫嗎?雖然有看過介紹但還不是很了解

還有這段

 var search = input.Search;
            select = select.BuildExtendSelectExpre();
            var q_User = search.all ? Db.GetIQueryable<Base_User>() : GetIQueryable();
            var q = from a in q_User.AsExpandable()
                    join b in Db.GetIQueryable<Base_Department>() on a.DepartmentId equals b.Id into ab
                    from b in ab.DefaultIfEmpty()
                    select @select.Invoke(a, b);

這種寫法也是我第一次看見
我知道他是left join
但我不太清楚BuildExtendSelectExpre、GetIQueryable、AsExpandable
以及 select @select.Invoke(a, b)
不知道能不能解說一下為什麼要這樣寫呢?

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答