我有兩個表(tbPerson和tbDataLog),我需要在兩個表上檢查特定的條件後,從一個表(tbPerson)返回Id。在此之後,這個結果應該被傳遞給另一個查詢。我的第一個查詢成功返回Id(表的主鍵),我需要將這些ID傳遞給另一個查詢,以便它返回基於這些Id的數據。我也有一個IQueryable類型的基礎對象來檢查某些條件來獲取數據。將linq匿名結果傳遞給另一個查詢的iQueryable對象
IQueryable<tbPerson> dataset
,我不能改變這個從IQueryable的到其他,因爲它會破壞代碼的其他部分)
我的第一個LINQ聲明:
public static IQueryable<LogResults> GetResultsForYes()
{
Databasename ents = new Databasename();
var ids = (from f in ents.tbPerson
join g in ents.tbDataLog
on f.InfoID equals g.RefId
where g.Tag == "subscribed" && g.OldValue == "No" && g.Action == "Modified"
select new LogResults { _LogID = f.Id }).OrderBy(x => x._LogID);
return ids;
}
public class LogResults
{
public int _LogID { get; set; }
}
訪問我的結果是這樣的地方我可以在調試器中看到所有的Ids。
IQueryable<LogResults> log = GetResultsForYes();
問題出現了,當我試圖根據這些返回的Id從tbPerson獲取記錄時。
dataset=log.where(x=>x._LogID != 0);
我得到這個錯誤:
Cannot implicitly convert type 'System.Linq.IQueryable' to 'System.Linq.IQueryable'. An explicit conversion exists(are you missing a cast)?
任何建議或一些其他的好辦法是值得歡迎的。