zoukankan      html  css  js  c++  java
  • 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 丫

     
  • 相关阅读:
    Java之多线程(实现Runnable接口)
    Java之使用HttpClient发送GET请求
    hbase中文内容编码转换
    Java之utf8中文编码转换
    Java之正则表达式
    Java之List排序功能举例
    maven测试时中文乱码问题解决方法
    Hbase之IP变更后无法启动问题解决
    Hbase远程连接:Can't get the locations
    重启Hbase命令
  • 原文地址:https://www.cnblogs.com/keatkeat/p/4743911.html
Copyright © 2011-2022 走看看