我正在尝试在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)不包含这个方法.. 有办法解决这个问题吗?
感谢。
答案 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();