zoukankan      html  css  js  c++  java
  • C#3.0 LINQ 操作符

    Table 类:

    public class DemoDataContext : DataContext
    {
      public DemoDataContext (string cxString) : base (cxString) {}
    
      public Table<Customer> Customers { get { return GetTable<Customer>(); } }
      public Table<Purchase> Purchases { get { return GetTable<Purchase>(); } }
    }
    
    [Table] public class Customer
    {
      [Column(IsPrimaryKey=true)]  public int ID;
      [Column]                     public string Name;
    
      [Association (OtherKey="CustomerID")]
      public EntitySet<Purchase> Purchases = new EntitySet<Purchase>();
    }
    
    [Table] public class Purchase
    {
        [Column(IsPrimaryKey=true)]  public int ID;
        [Column]                     public int CustomerID;
        [Column]                     public string Description;
        [Column]                     public decimal Price;
        [Column]                     public DateTime Date;
    
      EntityRef<Customer> custRef;
    
      [Association (Storage="custRef",ThisKey="CustomerID",IsForeignKey=true)]
      public Customer Customer
      {
        get { return custRef.Entity; } set { custRef.Entity = value; }
      }
    }

    使用SQL来创建表:

    create table Customer
    (
      ID int not null primary key,
      Name varchar(30) not null
    )
    create table Purchase
    (
      ID int not null primary key,
      CustomerID int not null references Customer (ID),
      Description varchar(30) not null,
      Price decimal not null
    )

    Join和GroupJoin实现:

    public static IEnumerable <TResult> Join
                                        <TOuter,TInner,TKey,TResult> (
      this IEnumerable <TOuter>     outer,
      IEnumerable <TInner>          inner,
      Func <TOuter,TKey>            outerKeySelector,
      Func <TInner,TKey>            innerKeySelector,
      Func <TOuter,TInner,TResult>  resultSelector)
    {
      ILookup <TKey, TInner> lookup = inner.ToLookup (innerKeySelector);
      return
        from outerItem in outer
        from innerItem in lookup [outerKeySelector (outerItem)]
        select resultSelector (outerItem, innerItem);
    }
    
    public static IEnumerable <TResult> GroupJoin
                                        <TOuter,TInner,TKey,TResult> (
      this IEnumerable <TOuter>     outer,
      IEnumerable <TInner>          inner,
      Func <TOuter,TKey>            outerKeySelector,
      Func <TInner,TKey>            innerKeySelector,
      Func <TOuter,IEnumerable<TInner>,TResult>  resultSelector)
    {
      ILookup <TKey, TInner> lookup = inner.ToLookup (innerKeySelector);
      return
        from outerItem in outer
        select resultSelector
         (outerItem, lookup [outerKeySelector (outerItem)]);
    }
  • 相关阅读:
    虚拟机网络模式
    js读取json包装的map集合
    LeetCode 94:Binary Tree Inorder Traversal
    tornado+ansible+twisted+mongodb运维自己主动化系统开发(四)
    UVA
    解决request.getRemoteAddr()获取的值为0:0:0:0:0:0:0:1这个小问题
    eclipse调试web项目
    Action的mapping.findFoward(forwardName)必须要在struts-config.xml中的对应的action节点配置一个forward节点
    使用struts的时候form用struts的,不用html本身的
    eclipse的源代码编辑窗口可以拖出来单独使用的哦
  • 原文地址:https://www.cnblogs.com/yangzhenping/p/3346012.html
Copyright © 2011-2022 走看看