zoukankan      html  css  js  c++  java
  • ALinq 使用教程(七)ALinq 的扩展

    ALinq 在 Linq to SQL 的基本,做了一些扩展,使得它更为好用。

    获取实体类的 DataContext 对象

    选择Category 实体类,将 DataContext 设为 True 。

     

    运行下面的代码:

    static void Main(string[] args)
    {
    var dc
    = new NorthwindDataContext() { Log = Console.Out };
    var category
    = dc.Categories.First();
    Console.WriteLine(category.DataContext);
    }

    运行结果:

    很明显,可以看到 category.DataContext 对象不为空,但是我们并没有在代码中给 category.DataContext 赋值,它怎么会不为空呢?我来看一下代码生成器生成的代码。

    代码
    // This method is called by the dataContext when the entity is created.
    private void SetDataContext(ALinq.DataContext dataContext)
    {
    this.DataContext = ((NorthwindDataContext)(dataContext));
    }

    public NorthwindDataContext DataContext
    {
    get
    {
    return this._DataContext;
    }
    private set
    {
    this._DataContext = value;
    }
    }

    我们主意到 SetDataContext 这个方法,当一个实体被 DataContext 创建后,DataContext 便会通反射检索名称 SetDataContext 的方法,如果存在,则调用该方法。所以,尽管我闪并没有对 category.DataContext 赋值,但 DataContext 却通过调用 SetDataContext 对它进行了赋值。

    批量更新、删除

    代码
    static void Main(string[] args)
    {
    var dc
    = new NorthwindDataContext() { Log = Console.Out };
    dc.Categories.Update(o
    => new Category { Categoryname = "New Name" }, o => o.Categoryid == -1);
    dc.Categories.Delete(o
    => o.Categoryid == -1);
    }

    运行结果:

      

    使用 Linq 表达式插入数据

    代码
    static void Main(string[] args)
    {
    var dc
    = new NorthwindDataContext() { Log = Console.Out };
    var categoryID
    = dc.Categories.Max(c => c.Categoryid) + 1;
    dc.Categories.Insert(o
    => new Category
    {
    Categoryid
    = categoryID,
    Categoryname
    = "Category Name",
    Description
    = "Description"
    });
    }

    运行结果:

  • 相关阅读:
    Tomcat启动报错java.net.AbstractPlainSocketImpl(java/net/AbstractPlainSocketImpl.java:178:-1)Struts在网络复杂情况下启动报错解决办法
    webpack入门级教程
    jquery-ui sortable 使用实例
    JS-类型转换
    JavaScript语言核心--词法结构
    理解CSS盒子模型
    HTML DOCTYPE 标签
    2015总结和2016计划
    MVC & MVVM
    前端常见问题汇总
  • 原文地址:https://www.cnblogs.com/ansiboy/p/2037429.html
Copyright © 2011-2022 走看看