• EF ObjectQuery查询及方法



     

    string

     esql = 

    "select value c from NorthwindEntities.Customers as c order by 

    c.CustomerID limit 10"

    ObjectQuery

    <

    Customers

    > query = edm.CreateQuery<

    Customers

    >(esql); 

    Console

    .WriteLine(query.GetResultType().ToString()); 

    //

    输出结果为:

     

    //NorthWindModel.Customers

     

     

    ToTraceString

    方法:

    获取当前执行的

    SQL

    语句。

     

     

    Where

     

    实例代码如下:

     

    using

     (

    var

     edm = 

    new

     

    NorthwindEntities

    ()) 

    string

     esql = 

    "select value c from NorthwindEntities.Customers as c "

    ObjectQuery

    <

    Customers

    > query1 = edm.CreateQuery<

    Customers

    >(esql); 

    //

    使用

    ObjectParameter

    的写法

     

     

    query1 = query1.Where(

    "it.CustomerId=@customerid"

    ); 

    query1.Parameters.Add(

    new

     

    ObjectParameter

    (

    "customerid"

    "ALFKI"

    )); 

    //

    也可以这样写

     

    //ObjectQuery<Customers> query2 = edm.Customers.Where("it.CustomerID='ALFKI'");

     

    foreach

     (

    var

     c 

    in

     query1) 

    Console

    .WriteLine(c.CustomerID); 

    //

    显示查询执行的

    SQL

    语句

     

    Console

    .WriteLine(query1.ToTraceString()); 

     

    First/ FirstOrDefault

     

    实例代码如下:

     

    using

     (

    var

     edm = 

    new

     

    NorthwindEntities

    ()) 

    string

     esql = 

    "select value c from NorthwindEntities.Customers as c order by 

    c.CustomerID limit 10"

    ;

     

    ObjectQuery

    <

    Customers

    > query = edm.CreateQuery<

    Customers

    >(esql); 

    Customers

     c1 = query.First(); 

    Customers

     c2 = query.FirstOrDefault(); 

    Console

    .WriteLine(c1.CustomerID); 

    Assert

    .IsNotNull(c2); 

    Console

    .WriteLine(c2.CustomerID); 

     

    Distinct

     

    实例代码如下:

     

    using

     (

    var

     edm = 

    new

     

    NorthwindEntities

    ()) 

    string

     esql = 

    "select value c.City from NorthwindEntities.Customers as c order by 

    c.CustomerID limit 10"

    ObjectQuery

    <

    string

    > query = edm.CreateQuery<

    string

    >(esql); 

    query = query.Distinct(); 

    foreach

     (

    string

     c 

    in

     query) 

    Console

    .WriteLine(

    "City {0}"

    , c); 

     

    Except:

    返回两个查询的差集。实例代码如下:

     

    using

     (

    var

     edm = 

    new

     

    NorthwindEntities

    ()) 

    string

     esql1 = 

    "select value c from NorthwindEntities.Customers as c order by 

    c.CustomerID limit 10"

    ObjectQuery

    <

    Customers

    > query1 = edm.CreateQuery<

    Customers

    >(esql1); 

    string

     esql2 = 

    "select value c from NorthwindEntities.Customers as c where 

    c.Country='UK' order by c.CustomerID limit 10"

    ObjectQuery

    <

    Customers

    > query2 = edm.CreateQuery<

    Customers

    >(esql2); 

    query1 = query1.Except(query2); 

  • 相关阅读:
    标题党的进步:道字大旗不再扯,美为号召又开张
    dwr自动生成的js文件到底在哪里?
    JavaScript全局优化带来的负面效果……
    内训资料公开:设计师的实战过程(1)
    元语言基础技术之:在JS中如何自由地创建函数
    QoBean的元语言系统(一)
    Oracle面向服务的架构
    对JavaScript的eval()中使用函数的进一步讨论~
    KEGG and Gene Ontology Mapping in Bioinformatic Method
    mysql user administration
  • 原文地址:https://www.cnblogs.com/jf-guo/p/6411432.html
Copyright © 2020-2023  润新知