c# – LINQ to SQL:存储过程结果
发布时间:2020-12-15 08:21:49 所属栏目:百科 来源:网络整理
导读:如何更改LINQ到SQL设计器生成的存储过程结果的类名(除了弄乱designer.cs)? 另外,如何在存储过程的结果集上执行linq查询? 解决方法 你能在dbml中编辑吗?就个人而言,我倾向于将自动生成的类型(来自函数和存储过程)视为DAL本地的DTO,因此我立即将它们重新映
如何更改LINQ到SQL设计器生成的存储过程结果的类名(除了弄乱designer.cs)?
另外,如何在存储过程的结果集上执行linq查询? 解决方法
你能在dbml中编辑吗?就个人而言,我倾向于将自动生成的类型(来自函数和存储过程)视为DAL本地的DTO,因此我立即将它们重新映射到我自己的POCO表示 – 即
var qry = from row in ctx.SomeProc(12345) select new Foo {ID = row.ID,Name = row.Name }; 等问题第二个问题“另外,如何在存储过程的结果集上执行linq查询?” – 如果你想编写它,我建议使用UDF而不是存储过程:这允许你在数据库中进行组合,例如分页和过滤: var qry = (from row in ctx.SomeFunction(12345) where row.IsActive select row).Skip(10).Take(10); 应该(至少在LINQ-to-SQL中)在服务器上执行TSQL中的所有操作.否则,您可以调用AsEnumerable()并在调用.NET层使用LINQ-to-Objects: var qry = (from row in ctx.SomeProc(12345).AsEnumerable() where row.IsActive select row).Skip(10).Take(10); 要编辑dbml(只是xml),请在此处更改ElementType / @ Name: <Function Name="dbo.CustOrderHist" Method="CustOrderHist"> <Parameter Name="CustomerID" Parameter="customerID" Type="System.String" DbType="NChar(5)" /> <ElementType Name="FooBar"> <!-- ********** HERE ************ --> <Column Name="ProductName" Type="System.String" DbType="NVarChar(40) NOT NULL" CanBeNull="false" /> <Column Name="Total" Type="System.Int32" DbType="Int" CanBeNull="true" /> </ElementType> </Function> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |