写点什么

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

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

关注

评论

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

荣誉墙,上新!

天翼云开发者社区

云计算 网络安全

万众瞩目!这里开“展”!

天翼云开发者社区

云计算 AI

微前端到底应该怎么学?

不在线第一只蜗牛

前端 微前端

拼多多根据ID取商品详情原数据API接口的开发应用与收益

科普小能手

电商 API 接口 API 测试 pinduoduo API 拼多多数据

项目管理工具和方法有哪些?

爱吃小舅的鱼

项目管理工具

The Past, Present and Future of Apache Flink

Apache Flink

大数据 flink 实时计算

设备间无缝互联,开启智能“对话”新时代

HarmonyOS SDK

harmoyos

鸿蒙NEXT开发案例:世界时间表

zhongcx

鸿蒙

Java程序员如何高效学习并发编程知识?

了不起的程序猿

程序员 后端 架构师 八股文 Java并发编程

云主机安装Redis,基于CodeArts模拟电商平台秒杀抢购

华为云开发者联盟

缓存 redis' 键值数据库 CodeArts

谷歌发布 Android XR 集成 Gemini 语音对话;Voice Agent 平台 Vapi 获 2000 万美元融资

声网

crossover安装exe后无法打开怎么办?CrossOver安装成功但打不开

阿拉灯神丁

容器 应用程序配置 苹果软件精选 CrossOver Mac下载 CrossOver 24

如何写出好的大模型提示词?如何判断提示词的好坏?

AIGC.TWang

AIGC GPT 提示词

初见ByConity

法医

ByConity

中昊芯英荣登甲子光年2024中国AI算力领域最具商业潜力榜

科技热闻

龙蜥社区落地开源生态发展合作倡议,构建开放兼容的操作系统生态

OpenAnolis小助手

操作系统 龙蜥社区 OpenAnolis

Java程序员如何精进性能优化技能?

了不起的程序猿

性能优化 架构师 java面试 MySQL优化 jvm调优

使用Flex布局的几个小技巧

EquatorCoco

Flex

“硬”核存储,等你来“盘”!

天翼云开发者社区

云计算 存储 硬盘

最新2025年体育足球篮球赛事直播软件开发费用

软件开发-梦幻运营部

初探python栈帧逃逸

快乐非自愿限量之名

Python

FORCE 原动力大会|火山引擎边缘云亮点干货先知晓!

火山引擎边缘云

低代码开发:企业数智化转型中的关键角色与实践案例分析

快乐非自愿限量之名

低代码

Kubernetes 可观测最佳实践

观测云

Kubernetes

hbdk-model-verifier、hbdk-sim 和 hbdk-hbm-attach 工具使用教程

地平线开发者

自动驾驶 算法 算法工具链 地平线征程5

如何防止Instagram IP被限制?

Ogcloud

海外社媒运营 海外社媒营销 ins运营 海外社媒推广

IoTDB 常见问题 Q&A 第二期

Apache IoTDB

如何做好一个中层管理

易成研发中心

企业管理 企业管理软件

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