• 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); 

  • 相关阅读:
    tomcat部署项目时 报错Tomcat version 7.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 and 6 Web modules
    异常:Caused by: java.lang.NoClassDefFoundError: org/springframework/web/context/WebApplicationContext
    java安全管理器SecurityManager介绍
    Mybatis框架基础支持层——反射工具箱之Reflector&ReflectorFactory(3)
    Mybatis框架基础支持层——解析器模块(2)
    Mybatis框架可视化(1)
    JDK动态代理简单使用(2)
    代理(1)
    动态代理源码分析(3)
    springboot(十七)-使用Docker部署springboot项目
  • 原文地址:https://www.cnblogs.com/jf-guo/p/6411432.html
Copyright © 2020-2023  润新知