亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

實體框架加入3個表

實體框架加入3個表

C#
白豬掌柜的 2019-08-16 15:51:30
實體框架加入3個表我想加入三張桌子,但我無法理解這個方法......我完成了加入2個表        var entryPoint = dbContext.tbl_EntryPoint            .Join(dbContext.tbl_Entry,                 c => c.EID,                 cm => cm.EID,                 (c, cm) => new                 {                     UID = cm.OwnerUID,                     TID = cm.TID,                     EID = c.EID,                 }).             Where(a => a.UID == user.UID).Take(10);我想在TID PK中包含tbl_Title表并獲取Title字段。非常感謝
查看完整描述

3 回答

?
慕神8447489

TA貢獻1780條經驗 獲得超1個贊

我認為使用基于語法的查詢會更容易:

var entryPoint = (from ep in dbContext.tbl_EntryPoint
                 join e in dbContext.tbl_Entry on ep.EID equals e.EID
                 join t in dbContext.tbl_Title on e.TID equals t.TID                 where e.OwnerID == user.UID                 select new {
                     UID = e.OwnerID,
                     TID = e.TID,
                     Title = t.Title,
                     EID = e.EID                 }).Take(10);

你應該添加orderby子句,以確保Top(10)返回正確的前十項。


查看完整回答
反對 回復 2019-08-16
?
紅顏莎娜

TA貢獻1842條經驗 獲得超13個贊

這是未經測試的,但我相信語法應該適用于lambda查詢。當您使用此語法連接更多表時,您必須深入查看新對象以獲得要操作的值。

var fullEntries = dbContext.tbl_EntryPoint    .Join(
        dbContext.tbl_Entry,
        entryPoint => entryPoint.EID,
        entry => entry.EID,
        (entryPoint, entry) => new { entryPoint, entry }
    )
    .Join(
        dbContext.tbl_Title,
        combinedEntry => combinedEntry.entry.TID,
        title => title.TID,
        (combinedEntry, title) => new 
        {
            UID = combinedEntry.entry.OwnerUID,
            TID = combinedEntry.entry.TID,
            EID = combinedEntry.entryPoint.EID,
            Title = title.Title
        }
    )
    .Where(fullEntry => fullEntry.UID == user.UID)
    .Take(10);


查看完整回答
反對 回復 2019-08-16
?
絕地無雙

TA貢獻1946條經驗 獲得超4個贊

var entryPoint = (from ep in dbContext.tbl_EntryPoint
                 join e in dbContext.tbl_Entry on ep.EID equals e.EID
                 join t in dbContext.tbl_Title on e.TID equals t.TID                 where e.OwnerID == user.UID                 select new {
                     UID = e.OwnerID,
                     TID = e.TID,
                     Title = t.Title,
                     EID = e.EID                 }).Take(10);


查看完整回答
反對 回復 2019-08-16
  • 3 回答
  • 0 關注
  • 356 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號