写点什么

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

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

关注

评论

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

2021年您应该知道的技术之一!Javafor循环乘法表

策划Java工程师

Java 程序员 面试 后端

7月日更,FAIL!FAIL?

Nydia

iOS开发底层面试攻略

面试 移动开发 ios开发

2021Java面试心得:kafka工具

Java 程序员 面试 后端

2021Java面试总结!Java中VO的使用

Java 程序员 面试 后端

2021吊打面试官系列!mysql数据库版本最新

Java 程序员 面试 后端

2021年Java面试心得:Java基本类型对应的包装类型

策划Java工程师

Java 程序员 面试 后端

HarmonyOS开发者日杭州站举办,多维赋能开发者实现高效开发

科技汇

🏆【Java 技术之旅】带你深入理解和认识SPI运作机制

洛神灬殇

Java 抽象 spi 7月日更

Linux ssh命令详解,连ssh命令都不了解就别说自己会用Linux了

北游学Java

Java Linux SSH

2021京东Java面试真题:Java枚举的作用与好处

Java 程序员 面试 后端

2021年Java面经分享:mysql创建数据表

策划Java工程师

Java 程序员 面试 后端

2021年“金三银四”来袭!Java开发接口利用http协议

策划Java工程师

Java 程序员 面试 后端

2021年您应该知道的技术之一!Java工程师一天工作多久

策划Java工程师

Java 程序员 面试 后端

云小课 | 一分钟了解AppCube中的应用

华为云开发者联盟

低代码 云小课 应用 AppCube 应用魔方

IM与办公平台的关系设计

superman

产品经理 架构师 IM 移动办公平台 自建移动办公

奥运神颜运动员

6979阿强

2021Java面试心得:docker运行springboot项目

Java 程序员 面试 后端

2021Java高级面试题总结:docker运行jar包依赖和程序分开

程序员 面试 后端

2021Java高级面试题!Java面试问题大全及答案大全下载

Java 程序员 面试 后端

2021年Java面试心得:Java开发工程师试用期一般多久

策划Java工程师

Java 程序员 面试 后端

Python开发篇——如何在Flask下编写JWT登录

吴脑的键客

Python flask JWT

吴亦凡都美竹事件:男人全员恶人?

6979阿强

🏆「推荐收藏」【Git实战专题】代码提交错误怎么办?教你如何回退版本!

洛神灬殇

git git flow git reset git revert

2021Java高级面试题总结!Java数组添加另一个数组

Java 程序员 面试 后端

【翻译】数据包的旅程 - OSI模型

luojiahu

计算机网络 OSI模型

从0到1亿用户的架构设计

俞凡

架构

云计算架构师-带你安装MySQL数据库并去除安全隐患

学神来啦

MySQL 数据库 Linux 运维 MariaDB

2021年Java面试心得:西安Java电商开发招聘

策划Java工程师

Java 程序员 面试 后端

golang--字典树

en

数据结构与算法 字典树

2021年Java开发实战!Java获取系统日期时间

Java 程序员 面试 后端

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