与LINQ查询中的整数字段的方法类似

时间:2015-09-21 07:25:20

标签: c# linq

以下类似语句的代码会引发错误,任何人都可以帮忙吗?

 var results = from c in dt.AsEnumerable()
               where SqlMethods.Like(c.Field<int>("Design_no").ToString(),
                                     "%" + Auto_txt_desi.Text.Tostring() + "%,")
                select c;
                DataView view = results.AsDataView();
                dt = view.ToTable(); 

1 个答案:

答案 0 :(得分:6)

SqlMethods.LikeLinq-To-Sql查询数据库的方法,而不是Linq-To-DataSet Linq-To-Objects的子集。您可以使用纯.NET方法:

var rows = from row in dt.AsEnumerable()
           let Design_no = row.Field<int>("Design_no").ToString()
           where Design_no.Contains(Auto_txt_desi.Text)
           select row;

MSDN

  

无法透露SQL Server LIKE功能   现有公共语言运行库(CLR)和.NET的翻译   框架构造,并且在LINQ to SQL之外不受支持   上下文。在LINQ to SQL 之外使用此方法将始终如此   抛出NotSupportedException 类型的例外。