免费下载案例集|20+数字化领先企业人才培养实践经验 了解详情
写点什么

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

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

关注

评论

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

几个快速提升工作效率的小工具(Listary等)分享一下(强烈建议收藏)

码农飞哥

Dubbo 服务注册与发现

青年IT男

dubbo

把黄金圣衣交给圣斗士:HDC.Cloud 2021的硬核春天

脑极体

一念三年,心机流转|靠谱点评

无量靠谱

源中瑞区块链BaaS平台搭建,为企业开发应用提供技术支撑

源中瑞-龙先生

区块链 源中瑞 Baas

身边的最优化问题

PeterOne

人工智能 算法

Redis 持久化

叶佳欣

redis持久化

2021最全网页视频下载攻略 【建议收藏】

科技猫

软件 工具 网站 分享 视频处理

Dubbo 直连提供者

青年IT男

dubbo

KubeFed集群联邦

ilinux

Kubernetes 容器 云原生 kubernetes联邦

如何运用“区块链”,让档案数据管理更安全

CECBC

数据安全

小白也能看懂的操作系统之内存

程序猿阿星

操作系统 内存 内存管理 内存优化

使用 rocketmq-spring-boot-starter 来配置、发送和消费 RocketMQ 消息

阿里巴巴云原生

容器 开发者 云原生 中间件 API

Dubbo 服务配置

青年IT男

dubbo

截图软件Snipaste超好用的贴图功能,在别的软件也能拥有 | 窗口置顶工具

彭宏豪95

效率 工具 windows 4月日更 窗口置顶

2.7w字!Java基础面试题/知识点总结!(2021 最新版)

JavaGuide

Java 面试

稻盛和夫的管理绝活:阿米巴经营模式

石云升

团队建设 28天写作 职场经验 管理经验 4月日更

ISO/IEC 5055:软件代码质量的标尺

华为云开发者联盟

软件 代码质量 源代码 ISO/IEC 软件质量模型

区块链链接能源:到底是乌托邦愿景还是未来蓝图?

CECBC

能源

Python基础语法和数据类型最全总结

华为云开发者联盟

Python

Dubbo 入门简介

青年IT男

dubbo

Dubbo 服务启动检查

青年IT男

dubbo

postman的url编码问题

箭上有毒

4月日更

What's new in dubbo-go v1.5.6

阿里巴巴云原生

开发者 云原生 dubbo 中间件 Go 语言

Dubbo快速入门

青年IT男

dubbo

聪明人的训练(二十五)

Changing Lin

4月日更

Leveldb解读之四:Compaction

Jowin

leveldb

Dubbo 四大角色

青年IT男

dubbo

Dubbo 集群容错

青年IT男

dubbo

MySQL事务机制是如何实现的?

冰河

MySQL 事务 Binlog Redo Log Undo Log

区块链电子发票的多维创新与变革效应

CECBC

电子税务

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