zoukankan      html  css  js  c++  java
  • 06复杂查询(多数据库表)

    1 建立实体类的联系

    此处使用手动写代码实现。

    1.1 Order

        private EntityRef<Customer> _Customer;
            public Order()
            {
                this._Customer = new EntityRef<Customer>();
        }
            /// <summary>
            /// 導航到 Customer
            /// </summary>
            /// <remarks>
            /// 使用 CustomerID 關聯到 Customer ThisKey
            /// Order的外鍵(CustomerID) 在 Customer 是主鍵,所以使用 ThisKey
            /// </remarks>
            [Association(Storage = "_Customer", ThisKey = "CustomerID")]
            public Customer Customer
            {
                get { return this._Customer.Entity; }
                set { this._Customer.Entity = value; }
        }

    注意:定义好实体的联系,就可以使用导航性得到Customer和Order,不需要使用Join。

    2 建立客户-订单联系性查询

                // Query for customers who have placed orders.
                // Any等同于EXISTS
                var custQuery2 = Customers
                   .Where(n => n.Orders.Any()); // EXISTS
                foreach (var custObj in custQuery2)
                {
                    //Console.ReadLine();
                    Console.WriteLine("ID={0}, Qty={1}", custObj.CustomerID,
                        custObj.Orders.Count);
             }

    注意:可以不添加联系性,建立一方就可导航了。

    3 建立强类型的DataContext对象

    /// <summary>
        /// 强类型 Northwind 数据库(元数据数据库)
        /// </summary>
        /// <remarks>
        /// 使用强型别 DataContext,不需要调用 GetTable。
        /// 数据库可分为:描述数据库和元数据数据库。
        /// 此处是使用元数据数据库。
        /// </remarks>
        public class Northwind : DataContext
        {
            // 强类型table
            public Table<Customer> Customers;
            public Table<Order> Orders;
    
            public Northwind(string connection) : base(connection) { }
     }

    注意:DataContext 的功能

    (1)追踪实体的变动

    (2)管理缓存

    (3)确保多个数据库实体使用同一个类的实例来表示。

    (4)代表相关数据库操作的一组逻辑

  • 相关阅读:
    3D文字菜单变换
    妙味课堂作业20160113(优化版)
    pop up layer loading
    妙味课堂作业20160113
    妙味课堂20160112js实例仿新浪菜单
    js面向对象初探
    sea.js demo
    注册ASP.NET
    JDK1.6 环境配置
    JDK1.7环境配置
  • 原文地址:https://www.cnblogs.com/htht66/p/2306812.html
Copyright © 2011-2022 走看看