1

请看代码:

// get column list from entity framework
var listID = from Ines in ineContext.IneDetailRecords
             select Ines.InePIN.ToString().ToList();
string PIN = something;
if(!listID.Contains(PIN))
    // save it to DB

InePIN 是 SQL Server DB 中的一个 cloumn,类型是 varchar(20)。

例外是:

Instance argument: cannot convert from 'System.Linq.IQueryable<System.Collections.Generic.List<char>>' to 'System.Linq.ParallelQuery<string>'
4

2 回答 2

6

您需要在查询结果上应用 ToList 方法,而不是在所选列上,即Ines.InePIN.ToString().ToList()

改变

var listID = from Ines in ineContext.IneDetailRecords
                                       select Ines.InePIN.ToString().ToList();

var listID = (from Ines in ineContext.IneDetailRecords
                                       select Ines.InePIN.ToString()).ToList();
于 2012-11-09T19:33:52.333 回答
1

您必须将整个列表转换为 ToString()

var listID = (from Ines in ineContext.IneDetailRecords
             select Ines.InePIN.ToString()).ToList();

并查看此链接以更好地理解类型协方差http://blogs.msdn.com/b/csharpfaq/archive/2010/02/16/covariance-and-contravariance-faq.aspx

于 2012-11-09T19:35:03.720 回答