亮网络解锁器,解锁网络数据的无限可能 了解详情
写点什么

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

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

关注

评论

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

流批一体数据交换引擎 etl-engine

weigeonlyyou

flink 消费 kafka 物联网 数据迁移 Kafka ETL 大数据‘’

Mac 触控增强神器BetterTouchTool详细图文使用教程

Rose

苹果电脑 BetterTouchTool破解 BetterTouchTool教程 Mac 触控板

【异常解决】postman请求提示Full authentication is required to access this resource

No8g攻城狮

测试 Postman

保持住你写代码的姿势,你就是黑带了

Bruce Talk

敏捷开发 TDD Agile

Mac高质量图像浏览处理:GraphicConverter 12中文版

魔仙苹果mac堡

图片浏览软件Mac版 GraphicConverter 12 GraphicConverter中文版

浏览器层面优化前端性能(2):Reader引擎线程与模块分析优化点

zhoulujun

前端性能 Reader引擎线程

Cornerstone for Mac(最好用的SVN管理工具) v4.2永久激活版

Rose

mac软件下载 SVN客户端 cornerstone 4破解 Cornerstone mac版

sketch文件导出没有背景色怎么办? sketch背景色消失的解决办法

Rose

sketch Mac Sketch下载 sketch无背景

5分钟搞懂5G安全增强

俞凡

5G 安全 网络 通信

AICopy探狐文案 for Mac(写作笔记改写和论文翻译查重)中文版

魔仙苹果mac堡

论文撰写 AICopy探狐文案 论文查重 Mac写作笔记软件

Go 语言切片是如何扩容的?

AlwaysBeta

Go 源码 面试题 切片

Django笔记四之字段属性

Hunter熊

Python django model field 字段属性

深度学习基础入门篇[三]:优化策略梯度下降算法:SGD、MBGD、Momentum、Adam、AdamW

汀丶人工智能

人工智能 机器学习 深度学习 梯度下降算法

MouseBoost for Mac(右键助手)中文版

Rose

mac电脑 MouseBoost for Mac MouseBoost激活版 右键鼠标助手工具

macOS 13 Ventura (苹果最新系统) v13.3.1正式版

Rose

macOS 13 Ventura 苹果最新系统 Macos13系统

使用Tuxera NTFS Mac修护移动磁盘:步骤详解

Rose

Tuxera NTFS Mac2022 Tuxera NTFS教程 ntfs

chrome对页面重绘和回流以及优化进行优化

zhoulujun

chrome 重绘 回流

失真函数、失真矩阵与平均失真

timerring

信息论

AI日课@20230408:如何基于大模型训练一个自己的数字克隆

无人之路

ChatGPT

QEMU线程模型

Linux内核拾遗

线程模型 Linux Kenel 虚拟化 qemu kvm

SQLChat 的 RBAC 之旅

天黑黑

AI sql 数据库· ChatGPT

Infuse for Mac(多媒体播放器)v7.5.1激活版

魔仙苹果mac堡

Infuse下载 苹果视频播放器 Mac版Infuse下载 Infuse 中文

浏览器史话中chrome霸主地位的奠定与国产浏览器的割据混战

zhoulujun

chrome 浏览器霸主 国产浏览器

区分List中 remove(index)/remove(Object)

Joseph295

JetBrains AppCode 2023 for Mac(高效iOS代码编写工具) v2023.1中文特别版

魔仙苹果mac堡

AppCode 2023 AppCode中文 AppCode 2023破解 Mac版iOS开发

css过去及未来展望—分析css演进及排版布局的考量

zhoulujun

CSS

post-css/less/sass样式嵌套与命令之"&"符号—BEM

zhoulujun

less SASS bem post-css

【Spring专题】「技术原理」从源码角度去深入分析关于Spring的异常处理ExceptionHandler的实现原理

洛神灬殇

spring 源码分析 4月日更 ExceptionHandler 异常处理器

推荐一款优秀电商开源项目

越长大越悲伤

开源 推荐算法 电商 Java'

简单好用的文件对比工具:Beyond Compare 4中文版

真大的脸盆

Mac Mac 软件 文件对比 文件对比工具 对比文件

Vue3 Transition 踩坑记

控心つcrazy

踩坑 Vue 踩坑经历 vue cli VUE 3.0 源码解析

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