首页 > 其他 > 详细

Linq- ExcuteQuery用法

时间:2014-05-29 00:11:22      阅读:558      评论:0      收藏:0      [点我收藏+]

DataContext.ExecuteQuery<TResult> 方法 (String, Object[])

语法:

public IEnumerable<TResult> ExecuteQuery<TResult>(
    string query,
    params Object[] parameters
)

类型参数:

TResult:返回的集合中的元素的类型。

参数:

query
类型:System.String
要执行的 SQL 查询。
parameters
类型:System.Object[]
要传递给命令的参数数组。 注意下面的行为: 
如果数组中的对象的数目小于命令字符串中已标识的最大数,则会引发异常。
如果数组包含未在命令字符串中引用的对象,则不会引发异常。
DBNull.Value.‘ data-guid="e868722df197aca8a891fbda7b547f2c">如果某参数为 null,则该参数会转换为 DBNull.Value

返回值

类型:System.Collections.Generic.IEnumerable<TResult>
由查询返回的对象的集合。
 
备注:

当 LINQ to SQL 不足以应对特定方案时,此方法可用作一种传递机制。

使查询结果中的列与对象中的字段和属性相匹配的算法如下所示:

  • 如果字段或属性映射到特定列名称,则结果集中应包含该列名称。

  • 如果未映射字段或属性,则结果集中应包含其名称与该字段或属性相同的列。

  • 通过先查找区分大小写的匹配来执行比较。 如果未找到匹配项,则会继续搜索不区分大小写的匹配项。

  • 如果同时满足下列所有条件,则该查询应当返回(除延迟加载的对象外的)对象的所有跟踪的字段和属性:

    • &lt;T&gt; is an entity explicitly tracked by the DataContext.‘ data-guid="b5283cd06e820bfa8eac0587794db9af">如果 <T> 是由 DataContext 显式跟踪的实体。

    • ObjectTrackingEnabled 为 true。

    • 实体具有主键。

    否则会引发异常。

  • 在所有其他情况下,查询只能检索对象的已跟踪字段和属性的子集。

下面的 C# 代码段显示此方法的一个用途:

bubuko.com,布布扣
var customers = db.ExecuteQuery<Customer>(@"SELECT CustomerID, CompanyName, ContactName, ContactTitle, 
   Address, City, Region, PostalCode, Country, Phone, Fax
   FROM   dbo.Customers
   WHERE  City = {0}", "London");

foreach (Customer c in customers)
   Console.WriteLine(c.ContactName);
bubuko.com,布布扣

 

 

Linq- ExcuteQuery用法,布布扣,bubuko.com

Linq- ExcuteQuery用法

原文:http://www.cnblogs.com/byvar/p/3754484.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!