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 运动框架
    js 去掉字符中两边的空格
    js 去掉字符中所有空格
    vue移动端webview视频轻应用
    vue绑定v-modal布尔值到checkbox后异步,部分手机更新不及时问题
    使用原生js的scrollTop,刷新进入页面定位到某一个dom元素
    会议管理项目总结
    ionic1上拉刷新,下拉加载,安卓问题解决
    jquery $(document).ready() 与window.onload的区别
    vue2+express4图片上传
  • 原文地址:https://www.cnblogs.com/yangzhenping/p/3346012.html
Copyright © 2011-2022 走看看