精进不休.NET 4.0 (7)

介绍

ADO.NET Entity Framework 4.0 的新增功能

* 对外键的支持,即把外键当做实体的一个属性来处理

* 对复杂类型的支持,即实体属性可以是一个复杂类型

* 将多个表映射到一个概念实体,将一个表拆为多个概念实体

* 增强了 LINQ to Entities

* 新增了对 POCO(Plain Old CLR Object)的支持,即 Model 代码中不会有任何关于持久化的代码

* 其他新特性

示例

1、外键 的 Demo

EntityFramework/ForeignKeys/Demo.aspx.cs

代码

/*
  * ADO.NET Entity Framework 4.0 - 新增了对外键的支持,即把外键当做实体的一个属性来处理
  */
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace DataAccess.EntityFramework.ForeignKeys
{
     public partial class Demo : System.Web.UI.Page
     {
         private Random _random = new Random();
         protected void Page_Load(object sender, EventArgs e)
         {
             // 在一个已存在的产品类别下新建一个产品(通过外键值)
             using (var ctx = new ForeignKeysEntities())
             {
                 Product p = new Product
                 {
                     Name = "webabcd test" + _random.Next().ToString(),
                     ProductNumber = _random.Next().ToString(),
                     StandardCost = 1,
                     ListPrice = 1,
                     SellStartDate = DateTime.Now,
                     rowguid = Guid.NewGuid(),
                     ModifiedDate = DateTime.Now,
                     ProductCategoryID = 18
                 };
                 // 这里需要手工 Add 这个新的 Product,然后再调用 SaveChanges()
                 ctx.Products.AddObject(p);
                 Response.Write(ctx.SaveChanges());
             }
             Response.Write("<br /><br />");
             // 在一个已存在的产品类别下新建一个产品(通过外键对象)
             using (var ctx = new ForeignKeysEntities())
             {
                 Product p = new Product
                 {
                     Name = "webabcd test" + _random.Next().ToString(),
                     ProductNumber = _random.Next().ToString(),
                     StandardCost = 1,
                     ListPrice = 1,
                     SellStartDate = DateTime.Now,
                     rowguid = Guid.NewGuid(),
                     ModifiedDate = DateTime.Now,
                     ProductCategory = ctx.ProductCategories.Single(c => c.ProductCategoryID  == 18)
                 };

                 // 这里直接调用 SaveChanges() 即可,而不用再手工地 Add 这个新的 Product
                 // 因为与这个新的 Product 关联的那个已存在的 ProductCategory 会自动地 Add 这个 新的 Product
                 Response.Write(ctx.SaveChanges());
             }
         }
     }
}

时间: 2024-11-08 19:17:27

精进不休.NET 4.0 (7)的相关文章

精进不休.NET 4.0 (9)

介绍 ADO.NET Entity Framework 4.1 的新增功能:Code First 示例 Web.config <?xml version="1.0"?><configuration> <connectionStrings> <!-- 需要将 Persist Security Info 设置为 True,以便保存密码信息 因为 Database.SetInitializer<MyContext>(new DropCre

精进不休 .NET 4.0 (5)

介绍 C# 4.0 的新特性之并行运算 * Parallel.For - for 循环的并行运算 * Parallel.ForEach - foreach 循环的并行运算 * Parallel.Invoke - 并行调用多个任务 * Task - 任务,基于线程池.其使我们对并行编程变得更简单,且不用关心底层是怎么实现的 * PLINQ - 用于对内存中的数据做并行运算,也就是说其只支持 LINQ to Object 的并行运算 示例 1.Parallel.For 的 Demo Parallel

精进不休 .NET 4.0 (4)

C# 4.0 新特性之命名参数和可选参数, 动态绑定(dynamic), 泛型协变和逆变, CountdownEvent, Barrier 介绍 C# 4.0 的新特性 * Named And Optional Arguments - 命名参数和可选参数 * Dynamic Binding - 动态绑定(dynamic 用于动态编程,其依赖于Dynamic Language Runtime) * Covariance - 泛型的协变 * Contravariance - 泛型的逆变 * Coun

精进不休 .NET 4.0 (3)

asp.net 4.0 新特性之动态数据(Dynamic Data)增强, AJAX增强; IDE之Visual Studio 2010增强 介绍 asp.net 4.0 的新增功能 动态数据(Dynamic Data)增强(之前的版本:http://www.cnblogs.com/webabcd/archive/2009/02/23/1396212.html) * EnableDynamicData - 启用 Dynamic Data 的功能 * DynamicHyperLink - 用于方便

精进不休 .NET 4.0 (2)

asp.net 4.0 新特性之url路由, 自定义CacheProvider, 新增的表达式 , QueryExtender控件, 其它新特性 介绍 asp.net 4.0 的新增功能 * 在 web form 中做 url 路由 * 通过实现自定义的 CacheProvider ,来实现自定义的页面缓存逻辑 * 新增的表达式 <%: expression %> 相当于 <%= HttpUtility.HtmlEncode(expression) %> * 控件 QueryExt

精进不休 .NET 4.0 (1)

asp.net 4.0 新特性之web.config的改进, ViewStateMode, ClientIDMode, EnablePersistedSelection 介绍 asp.net 4.0 的新增功能 * 简洁的 web.config 文件 * 控件的新属性 ViewStateMode - 控件的视图状态模式 * 控件的新属性 ClientIDMode - 生成客户端 ID 的方式 * 列表控件的新属性 EnablePersistedSelection - 保存选中项的方式 * 控件的

精进不休.NET 4.0 (8)

ADO.NET Entity Framework 4.0 Self Tracking Entity 介绍 ADO.NET Entity Framework 4.0 的新增功能 * 对 Self Tracking Entity(实体状态自跟踪)的支持,基于 POCO * WCF 结合 Self Tracking Entity 的应用 示例 1.Self Tracking Entity 的 Demo SelfTrackingDemo/BLL.cs 代码 /* * ADO.NET Entity Fra

精进不休.NET 4.0 (6)

介绍 ADO.NET Data Services 1.5 的新增功能 * 支持服务端的 RowCount - 获取指定实体集合的成员数(只返回一个整型值,而不会返回实体集合) * 支持服务端的分页 - 服务端可以返回分页后的数据,并且在其中还可以包含全部数据总数 * 支持服务端的 Select - 返回的结果只包括 Select 的字段 * 支持大数据传输 BLOB(binary large object) * 支持自定义数据服务 示例 1.服务端 RowCount 的 Demo MyDataS

Spring.Net在Mvc4.0中应用的说明

案例Demo:http://yunpan.cn/cJ5aZrm7Uybi3 访问密码 414b Spring.Net在Mvc4.0中应用的说明 1.引用dll       2.修改Global文件 (SpringMvcApplication)       3.控制器添加属性     4.WebConfig配置   <!--必须紧跟着configuration之后-->   <configSections>     <sectionGroup name="spring