Datatable在C#2.0中不包含使用LinqBridge1.1的AsEnumerable定义

时间:2010-10-06 12:11:14

标签: linq asenumerable linqbridge

我正在尝试在c#2.0(linqbridge)中使用linq来搜索我的数据库中的患者姓名, 但我收到以下错误: System.Data.Datatable不包含AsEnumerable()的定义 System.Data.Datatable不包含CopyToDataTable()

的定义

我在项目中添加了linqBridge.dll引用。 我正在使用:

使用System.Linq;

            List<string> names = name.Split(' ').ToList();
            SqlConnection con = new SqlConnection(m_connection_string);
            SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM PATIENT", con);
            DataSet ds = new DataSet();
            da.Fill(ds);

            var query =
            from pat in ds.Tables["PATIENT"].AsEnumerable().Where(c => names.All(val => c.PAT_SEARCH_NAME.Contains(val)))
            select pat;

            DataTable table = query.CopyToDataTable();

我做错了什么? 我已经读过这个版本的LinqBridge(1.1)不包含这个方法.. 有办法解决这个问题吗?

感谢。

3 个答案:

答案 0 :(得分:22)

您是否尝试将 System.Data.DataSetExtensions dll添加到项目中?

答案 1 :(得分:0)

要完成上一个答案,如果您无法使用Visual Studio添加对 System.Data.DataSetExtensions 的引用,我设法通过直接手动编辑库项目文件来完成。只需在现有引用中插入正确的行:

<Reference Include="System.Data" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Runtime.Remoting" />

答案 2 :(得分:0)

使用DataTable代替DataSet

在您的代码中更改为:

DataTable ds = new DataTable();