标签: asenumerable

理解LINQ to SQL中的.AsEnumerable()

给出以下LINQ to SQL查询:

var test = from i in Imports
           where i.IsActive
           select i;
Run Code Online (Sandbox Code Playgroud)

解释的SQL语句是:

SELECT [t0].[id] AS [Id] .... FROM [Imports] AS [t0] WHERE [t0].[isActive] = 1
Run Code Online (Sandbox Code Playgroud)

假设我想在select中执行一些无法转换为SQL的操作.我的理解是,实现这一目标的传统方法是AsEnumerable()将其转换为可行的对象.

鉴于此更新的代码:

var test = from i in Imports.AsEnumerable()
           where i.IsActive
           select new 
           { 
               // Make some method call 
           };
Run Code Online (Sandbox Code Playgroud)

并更新了SQL:

SELECT [t0].[id] AS [Id] ... FROM [Imports] AS [t0] 
Run Code Online (Sandbox Code Playgroud)

注意执行的SQL语句中缺少where子句.

这是否意味着整个"Imports"表被缓存到内存中?如果表中包含大量记录,这会导致性能下降吗?

帮助我了解幕后实际发生的事情.

c# linq linq-to-sql asenumerable

44
推荐指数
3
解决办法
4万
查看次数

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

我正在尝试在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();
Run Code Online (Sandbox Code Playgroud)

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

谢谢.

linq linqbridge asenumerable

4
推荐指数
1
解决办法
1万
查看次数

c#在.NET 2上使用DataTable AsEnumerable()

我试图在.net 2 winforms应用程序上运行以下代码:

DataTable dt = this.GetData(null, null, true, sql);

DateTime minDate = (from f in dt.AsEnumerable()
               select f.Field<DateTime>("Timestamp")).Min();
Run Code Online (Sandbox Code Playgroud)

我收到"using system.linq"和".AsEnumerable()"的错误.有什么方法可以解决这个问题,使用AsEnumerable()?或者我应该放弃这种方法?

谢谢!

c# linq datatable .net-2.0 asenumerable

4
推荐指数
1
解决办法
4922
查看次数

datatable.AsEnumerable 不起作用(基本示例)

Dim x = From row In f_table.AsEnumerable()
                    Select row("Crop")
Run Code Online (Sandbox Code Playgroud)

据我了解,“f_table.AsEnumerable”应该使我的搜索对象(在本例中为“row”)成为数据行对象。这个简单的示例运行时没有任何异常,但没有找到任何条目(如果我切换到从 f_table 获取的数据行数组,而不是 f_table.AsEnumerable,则此搜索有效)。

为什么 AsEnumerable 不允许搜索表的行的任何想法?

编辑/添加:以下是我所拥有的,其中“emptyrows”是 f_table 中行的子集数组。

Dim emptyrows_grouped = From row In emptyrows
                                Order By row("Date"), row("Time")
                                Group By New With {.date = row("Date")}.date,
                                         New With {.crop = row("Crop")}.crop
                                Into Group
Run Code Online (Sandbox Code Playgroud)

我想要的是这种形式:

Dim emptyrows_grouped = From row In f_table.AsEnumerable
                                Where row.Field(Of String)("SamplePosition") Like "Emp%"
                                Order By row("Date"), row("Time")
                                Group By New With {.date = row("Date")}.date,
                                         New With {.crop = row("Crop")}.crop
                                Into Group
Run Code Online (Sandbox Code Playgroud)

linq vb.net asenumerable

1
推荐指数
1
解决办法
7236
查看次数

标签 统计

asenumerable ×4

linq ×4

c# ×2

.net-2.0 ×1

datatable ×1

linq-to-sql ×1

linqbridge ×1

vb.net ×1