簡體   English   中英

如何基於表“ b”中的不同值從表“ a”中檢索數據

[英]How to retrieve data from table “a” based on different values in table “b”

var c = from p in db.Testings
        where p.id == Convert.ToInt32(k)
        select new{p.ItemId};`

上面的Linq返回包含不同ItemId的多個行。 現在,我試圖從Questions表中檢索所有行,其中包含我在上述linq中返回的所有ItemId。 不出所料,以下代碼無法正常工作。 任何人都可以通過這種邏輯幫助我,或者如果這是一個較小的邏輯錯誤,請更正我的代碼。

 var cfk = from p in db.Questions
           where p.ItemId == Convert.ToInt32(c)
           select p;

 GridView4.DataSource = cfk;
 GridView4.DataBind();

就像是:

              var cfk = from p in db.Questions
              where c.Contains(p.ItemId)
              select p;

您可以使用LINQ執行內部聯接。

http://msdn.microsoft.com/en-us/library/bb397941.aspx

如果可能的話,我可能會在Get()期間在Db端進行連接。

根據您選擇的第二個變量名稱“ cfk”,我猜您已設置數據庫,使Questions.ItemId是Testings的外鍵,其中Testings.ItemId是Testings和Testings.id的主鍵其他非關鍵列。

如果是這樣,您可以說:

var cfk = db.Testings
            .Where(t => t.id == k)
            .SelectMany(t => t.Questions);

要么

var cfk = db.Questions
            .Where(t => t.Testing.id == k);

如果沒有外鍵關系,則需要像其他人建議的那樣進行加入

var cfk = db.Testings
            .Where(t => t.id == k)
            .Join(db.Questions, t => t.ItemId, q => q.ItemId, (t, q) => q);

暫無
暫無

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

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