写点什么

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:292297
用户头像

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

关注

评论

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

docker的/var/run/docker.sock参数

程序员欣宸

Docker Docker 镜像 9月月更

React Context源码是怎么实现的呢

flyzz177

React

一文带你全面了解什么是颠覆时代的Web3.0未来互联网

echeverra

Web3.0

详解JS中 call 方法的实现

华为云开发者联盟

Java 前端 企业号九月金秋榜

开发者有话说|我的前端开发感悟

言程序

个人成长

深圳大数据培训哪家教的好

小谷哥

MFC|实现自定义复选框效果

中国好公民st

c++ 控件 9月月更

监控平台SkyWalking9入门实践

Java 架构 Skywalking

前端动效讲解与实战

vivo互联网技术

前端 SVG 动效

隐私计算唯一代表厂商!洞见科技入选《爱分析·数据智能厂商全景报告》

洞见科技

Java面试题大全(整理版)1000+面试题附答案详解最全面看完稳了

钟奕礼

Java 面试 java; Java 面试题

Chrome操作指南——入门篇(十四)drawer

Augus

Chrome开发者工具 9月月更

故障转移和恢复

源字节1号

软件开发 后端开发

【荣耀帐号服务】手把手教你快速Android应用接入

荣耀开发者服务平台

开发者 服务 安卓 应用 honor

从0到1带你搭建一个vue3.0项目(vue-cli脚手架版)

言程序

前端 vue3.0 9月月更

java培训学习应该注意什么?

小谷哥

Flowable 流程部署与删除

江南一点雨

Java springboot flowable

谷歌也开始裁员!谷歌CEO说出理由让人惊叹

雨果

裁员 谷歌 互联网裁员

《DevOps工具链的国产化之道》直播报名开始啦!

嘉为蓝鲸

DevOps IT 工具链 研发

牛客网扫地僧开源出来的《Java面试无敌流笔记》,Github上线两天就爆火

Geek_0c76c3

Java 数据库 开源 程序员 架构

开发者有话说|我的前端开发感悟

言程序

个人成长 程序人生

前端线下培训学习适合哪些人群

小谷哥

Chrome操作指南——入门篇(十五)monitor

Augus

Chrome开发者工具 9月月更

Vue入门指北——modifier

Augus

Chrome开发者工具 9月月更

太强了!阿里p8大佬干了半个月总结的《Alibaba分布式系统速成笔记》正式开源

Geek_0c76c3

Java 数据库 开源 程序员 架构

基于 Apache Hudi 极致查询优化的探索实践

华为云开发者联盟

大数据 后端 华为云 企业号九月金秋榜

这些js手写题你能回答上来几道

helloworld1024fd

JavaScript 前端

react hook 源码完全解读

flyzz177

React

Python基础(五) | 函数及面向过程编程详解

timerring

Python Monad 9月月更

N1盒子openwrt+dogcom实现大学校园网的自动登录开启路由

知识浅谈

9月月更

web前端培训机构怎么选择比较好呢

小谷哥

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