【问题标题】:Could not find an implementation of the query pattern for source type 'System.Data.DataRow'. 'Join' not found.找不到源类型“System.Data.DataRow”的查询模式的实现。未找到“加入”。
【发布时间】:2012-08-22 22:21:45
【问题描述】:

错误在 qRow 上。如何用 linq 解决这个问题?我试图找到答案,但没有运气。

IEnumerable<DataColumn> iCols = (from i in Interlocks
        join r in Results on i.InterlockID equals r.InterlockID
        where r.StationType.Equals("RT") && r.LineID.Equals("1") && r.TestNo == 1 && r.StationID == 1
        && i.SerialNumber.Equals("C11205150001") && (r.DateTested >= DateTime.Now.AddMonths(-48) && r.DateTested <= DateTime.Now)
        select new { i.SerialNumber,i.ModelNumber,r.DateTested,r.InterlockID,r.ResultID,r.ProgramDescription,r.TestStatus,r.CycleTime}).Distinct().Cast<DataColumn>();
interlock.Columns.Add("SerialNumber",Type.GetType("System.String"));
interlock.Columns.Add("ModelNumber", Type.GetType("System.String"));
interlock.Columns.Add("DateTested", Type.GetType("System.DateTime"));
interlock.Columns.Add("InterlockID", Type.GetType("System.Int32"));
interlock.Columns.Add("ResultID",Type.GetType("System.Int32"));
interlock.Columns.Add("ProgramDescription",Type.GetType("System.String"));
interlock.Columns.Add("CycleTime", Type.GetType("System.Int32"));
interlock.Columns.AddRange(iCols.ToArray());
interlock.AcceptChanges();

foreach (DataRow qRow in interlock.Rows)
{
    var details = (from d in qRow
            join rd in Results_Details on d.ResultID equals rd.ResultID
            select new {d.DateTested,d.ResultID,rd.ResultNameID,rd.ResultValue}).Distinct();

【问题讨论】:

  • 这有点难以判断,因为你没有给出完整的错误信息和错误发生的确切位置("on qRow" 实际上是模棱两可的)... 但可能是您缺少程序集引用 (System.Data.DataSetExtensions.dll) 或 using 指令?

标签: c# linq-to-sql


【解决方案1】:

DataTable 不是强类型,您需要使用 DataRow's Field extension 或相应地转换对象。

from d in qRow
join rd in Results_Details on d.Field<String>("ResultID") equals rd.ResultID

还记得添加对 System.Data.DataSetExtensions.dllusing System.Data; 的引用,正如 stakx 提到的那样。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-23
    • 2010-11-10
    • 1970-01-01
    • 2020-09-18
    • 2012-01-03
    • 1970-01-01
    相关资源
    最近更新 更多