NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

Entity Framework Feature CTP 4 更新了 Code First 编程模型并提升了生产率

  • 2010-07-16
  • 本文字数:1323 字

    阅读完需:约 4 分钟

近日, Entity Framework Feature CTP 4 发布了,更新了 Code First 编程模型,增加了新的编码约定与数据注解,同时还新增了两个类型:DbContext 与 DbSet,可以使用 Code First 简化实体模型的创建。

Code First

Code First 编程模型通过编写类代码来创建模型,与该类关联的实体则包含在模型当中。在使用恰当的编码约定时 EF 会检测到模型,还可以通过 Fluent API 或数据注解属性精化这个过程。下面的代码示例展示了数据注解属性的用法:

复制代码
public class Person {
    [Key]
    public string SSN { get; set; }
    [StringLength(512)]
    public string Name { get; set; }
    [RelatedTo(RelatedProperty=”Author”)]
    public ICollection<Book> Books { get; set; }
}

[Key] 注解所指定的属性是实体的主键,[StringLength(512)] 指定了字符串属性的最大长度值。EF CTP 4 可以识别如下数据注解:Key、StringLength、ConcurrencyCheck、Required、Timestamp、DataMember、RelatedTo、MaxLength 及 StoreGenerated。

Fluent API 的优先级要比数据注解高,而数据注解的优先级要比代码约定高。其他重要的 Code First 更新有:

  • CTP 4 中支持的模型探测约定有:主键、关系反转、外键及多元化的表名
  • 精化了 Fluent API 方法,直观性更好。 Code First Walkthrough 中包含了更多的细节信息

生产率的提升

EF CTP 4 添加了两个新类型:DbContext 与 DbSet。DbContext 是 ObjectContext 的简化版本,提供了基本的模型缓存、数据库供应、连接管理及模式创建等功能。代码示例如下所示:

复制代码
using System.Collections.Generic;
using System.Data.Entity;
namespace MyDataAccessDemo {
class Program {
static void Main(string[] args){
using (var context = new ProductContext()) {
var food = new Category { CategoryId = "FOOD" };
context.Categories.Add(food);
var cheese = new Product { Name = "Cheese" };
cheese.Category = context.Categories.Find("FOOD");
context.Products.Add(cheese);
context.SaveChanges();
}
}
}
 
public class ProductContext : DbContext {
public DbSet<Product> Products { get; set; }
public DbSet<Category> Categories { get; set; }
}
public class Product {
public int ProductId { get; set; }
public string Name { get; set; }
public Category Category { get; set; }
}
 
public class Category{
public string CategoryId { get; set; }
public string Name { get; set; }
public ICollection<Product> Products { get; set; }
}
}

要想创建实体模型,上面这些代码足矣,它包含了将模型存储到数据库中所需的一切底层信息。

微软并未明确 EF 4 RTM 的发布时间,只是说“我们正努力工作以期早日发布 RTM”。

相关信息: ADO.NET EF CTP 4 EF CTP4 Walkthrough:Code First Conventions for Code First Productivity Improvements for the Entity Framework EF CTP4 Walkthrough:Productivity Improvements

查看英文原文: EF CTP 4 Brings Code First Updates and Productivity Improvements

2010-07-16 01:292170
用户头像

发布了 88 篇内容, 共 258.6 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

短视频时代下的知识摄取

Neco.W

学习 知识管理 知识体系 短视频

爬虫框架Scrapy应用实践-淘宝保险频道数据抓取【1】-前期准备

hadesxiong

Python 爬虫 保险 Scrapy

足不出户“逛”银行,37家城商行、农商行手机银行App性能大比拼

博睿数据

APM App 评测 网银 银行

使用Spring Boot和Docker构建微服务架构(一)

Tux Hu

Docker 架构 容器 微服务 Spring Boot

2020年3月云主机性能评测报告

博睿数据

云计算 运维 机房 数据中心 主机

ARTS第一周

困到清醒

ARTS 打卡计划 起跑

是什么在背后支撑起“带货一哥”李佳琦?

博睿数据

负载均衡 APM 压测 秒杀 并发

linux 账户及安全管理(一 账户管理)

牧马人

Linux

企业微信机器人在大型财务共享中心的应用实践

DT极客

使用Spring Boot和Docker构建微服务架构(四)

Tux Hu

Docker 架构 容器 微服务 Spring Boot

卡巴斯基产品本地化用时能缩短 77%,怎么做到的?

葛仲君

项目管理 软件开发 本地化 开发流程

数据产品经理实战-DMP搭建

第519区

产品经理 营销

快速入门 Nacos 作为配置中心操作

zhuoqianmingyue

nacos SpringBoot 2

代码刚提交暂存区,组长突然要我把新增代码 Commit另一分支怎么办?

zhuoqianmingyue

git

使用Spring Boot和Docker构建微服务架构(二)

Tux Hu

Docker 架构 容器 微服务 Spring Boot

配置国内的pip源以提高使用pip安装python软件包的速度

良少

Python pip

Jsp页面报错后如何找到提示信息中的_jsp.java文件

阡陌r

后台定时统计任务太耗时如何优化一下

zhuoqianmingyue

线程池

程序员的修行之路-关于编程语言

牧马人

程序员

Java | @Override 不要再把它当成可有可无的了

YoungZY

Java 注解 Override annotation

玩转SpringBoot2.x之缓存对象

zhuoqianmingyue

redis springboot

2020年3月北京BGP机房网络质量评测报告

博睿数据

运维 APM 机房 数据中心 拨测

Spring Cloud 和 Dubbo 哪个会被淘汰?

程序猿DD

Spring Cloud dubbo

微软:正式发布针对 .NET Core的 Winform 设计器

葡萄城技术团队

.net 微软 Win .net core

程序员的修行之路-保持良好的心态

牧马人

程序员

程序员的修行之路-关于编程语言

牧马人

程序员

游戏夜读 | 世界两大游戏评论!

game1night

产品周刊 | 第 16 期(20200524)

八味阁

产品 设计 产品经理 产品设计

微信gif图片大小的规则

石云升

微信 GIF

zookeeper到nacos的迁移实践

捉虫大师

架构 nacos

使用Spring Boot和Docker构建微服务架构(三)

Tux Hu

Docker 架构 容器 微服务 Spring Boot

Entity Framework Feature CTP 4更新了Code First编程模型并提升了生产率_.NET_Abel Avram_InfoQ精选文章