zoukankan      html  css  js  c++  java
  • .NET 4中Entity Framework 新增查询与优化

    外键支持(Foreign Keys)

    Entity Framework添加了对外键的支持。利用外键关联,您现在可以将外键属性包含在实体里,这样做可以简化诸如数据绑定、n-tier开发等关键方案的开发。您可以直接使用外键属性设置实体之间的关系:  

        using (BlogEntities ctx = new BlogEntities()) { 

            Post myPost 
    = new Post { 

                PostID 
    = 102

                PostName 
    = "Post Title"

                CreatedDate 
    = DateTime.Now, 

                PostContent 
    = "Post Content"

                BlogID 
    = 11 

            }; 

            ctx.Posts.AddObject(myPost); 

            ctx.SaveChanges(); 

        } 

    在这个例子里,即使BlogID == 11的这个Blog对象从未被装载,我们也可以直接把新建的myPost对象与这个Blog对象之间的关系通过外键关联起来。

    延迟加载支持(Lazy Loading)

    现在Entity Framework支持延迟加载。一个新的模型在VS2010中被创建的同时,提供延迟加载功能的实体也被生成出来。默认情况下这个功能是开启的,一个查询操作返回的实体对象并不会被马上加载,而是会在实际被使用的时候加载。举例来说,延迟加载意味着下面这个代码段里,每个Post对象会在实际被调用来打印PostName属性的时候被加载。

       using (var ctx = new BlogEntities()) {  
            
    foreach (var b in ctx.Blogs) {  
                Console.WriteLine(b.BlogName);  
                
    //请注意我们并未主动装载当前blog的posts  
                
    //EF会为我们延迟加载  
                foreach (var p in b.Posts)  
                    Console.WriteLine(p.PostName);  
            }  
        } 

    加入SQL语句LIKE的生成支持

    在EF4中,加入对于WHERE语句的字符串参数使用数据库的通配符的支持。例如下面的LINQ查询语句会被翻译成一个使用WHERE子句和LIKE语句,并使用‘%’通配符在所有的Blogs里搜索BlogName属性以‘Visual Studio’开头的Blog。

        var query = from b in ctx.Blogs  
                    
    where b.BlogName.StartsWith("Visual Studio")  
                    select b;    

    加入SQL语句IN的生成支持

    在EF4中,加入对于WHERE语句的参数多个值查询的支持。例如下面的LINQ查询语句会被翻译成一个使用WHERE子句和IN语句,并使用一个数组在所有的Blogs里搜索BlogName属性为"Visual"和"Studio"的所有数据。

        var query = from b in ctx.Blogs  
                    
    where new string[] { "Visual""Studio" }.Contains( b.BlogName)  
                    select b;   


     

  • 相关阅读:
    各国语言缩写列表,各国语言缩写-各国语言简称,世界各国域名缩写
    How to see log files in MySQL?
    git 设置和取消代理
    使用本地下载和管理的免费 Windows 10 虚拟机测试 IE11 和旧版 Microsoft Edge
    在Microsoft SQL SERVER Management Studio下如何完整输出NVARCHAR(MAX)字段或变量的内容
    windows 10 x64系统下在vmware workstation pro 15安装macOS 10.15 Catelina, 并设置分辨率为3840x2160
    在Windows 10系统下将Git项目签出到磁盘分区根目录的方法
    群晖NAS(Synology NAS)环境下安装GitLab, 并在Windows 10环境下使用Git
    使用V-2ray和V-2rayN搭建本地代理服务器供局域网用户连接
    windows 10 专业版安装VMware虚拟机碰到的坑
  • 原文地址:https://www.cnblogs.com/ejiyuan/p/1749368.html
Copyright © 2011-2022 走看看