• Entity Framewor 学习笔记 (碎碎的东西)


    Proxy 类
    代理类是为了让EF实现lazy load才需要的
    public class BloggingContext : DbContext 

        public BloggingContext() 
        { 
            this.Configuration.ProxyCreationEnabled = false; 
        }  
    }
    这样就可以关掉了。
    using (var context = new BloggingContext()) 

        var blog = context.Blogs.Find(1); 
        var entityType = ObjectContext.GetObjectType(blog.GetType()); 
    }
    上面这个写法可以100%拿到Original Class, 如果 Proxy 是开启的状态,那么这将很好用



    AsNoTracking
    using (DB db = new DB())
    {
        var product = db.products.AsNoTracking().FirstOrDefault();
        var state = db.Entry(product).State; // Detached
    }

    看到了吧,可以返回一个 Detached 的Entity, 可以帮助提升性能.

    [NotMapped] prop不要map to sql 

    [DatabaseGenerated(DatabaseGeneratedOption.Computed)] //让sql来generate value
    [ConcurrencyCheck] //并发控制

    更新 2016-07-14 

    Entity framework sum 

    refer : https://ilmatte.wordpress.com/2012/12/20/queryable-sum-on-decimal-and-null-return-value-with-linq-to-entities/

    double resultA = db.units.Where(u => u.type == "aa").Sum(u => (double?)u.amount) ?? 0;
    double resultB = db.units.Where(u => u.type == "aa").Sum(u => u.amount);  //error

    resultB 会有 error , 2个制作出来的 sql 语句是一样的, 问题出在 double 必须是nullable 丫

     
  • 相关阅读:
    Tomcat环境的搭建(web基础学习笔记一)
    子查询二(在HAVING子句中使用子查询)
    子查询一(WHERE中的子查询)
    分组统计查询(学习笔记)
    Oracle体系结构一(学习笔记)
    表分区(学习笔记)
    索引(学习笔记)
    序列(学习笔记)
    触发器七(复合触发器)(学习笔记)
    触发器六(系统触发器)(学习笔记)
  • 原文地址:https://www.cnblogs.com/keatkeat/p/4743911.html
Copyright © 2020-2023  润新知