随笔分类 -  [14] Entity Framework

Entity Framework
摘要:创建初始模型和数据库 在开始使用迁移(Migrations)之前,我们需要一个 Project 和一个 Code First Model, 对于本文将使用典型的 Blog 和 Post 模型创建一个新的控制台应用程序 MigrationsDemo;添加最新的EntityFramework 到项目Tools –> Library Package Manager –> Package Manager Console;运行命令 Install-Package EntityFramework 创建Blog.cs 和 DbContext的派生类BlogContext.cspublic cla 阅读全文
posted @ 2013-12-31 16:42 舍长 阅读(70646) 评论(14) 推荐(33) 编辑
摘要:声明:本文针对EF5+,Visual Studio 2012+ 空间数据类型(Spatial Data Types)是在EF5中引入的,空间数据类型表现有两种:Geography (地理学上的)- 存储的是椭圆形数据,如 GPS 的经纬度坐标;Geometry (几何学上的)- 代表欧氏几何(平面的)坐标系统。 下面示例该数据类型的一个应用程序新建 C# 控制台应用程序 相信 Console 应该都会建,命名为SpatialCodeFirst使用 Code First 建立 Model 注意为DbGeography添加System.Data.Entity.Spatial 命... 阅读全文
posted @ 2013-12-24 14:50 舍长 阅读(6600) 评论(2) 推荐(5) 编辑
摘要:声明:本文只针对 EF6+ 默认情况下,Code First对实体进行插入、更新、删除操作是直接在表上进行的,从 EF6 开始你可以选择使用存储过程(Stored Procedures)简单实体映射 Basic Entity Mapping 注意:本文将使用 Fluent API 来配置使用存储过程public class Blog{ public int BlogId { get; set; } public string Name { get; set; } public string Url { get; set; } [Timestamp] pub... 阅读全文
posted @ 2013-12-23 16:48 舍长 阅读(23579) 评论(13) 推荐(7) 编辑
摘要:上一篇文章我们讲解了如何用Fluent API来配置/映射属性和类型,本文将把重点放在其是如何配置关系的。 文中所使用代码如下public class Student { public int ID { get; set; } public string Name { get; set; } public DateTime EnrollmentDate { get; set; } // Navigation properties public virtual Address Address { get; set;... 阅读全文
posted @ 2013-12-20 18:17 舍长 阅读(23603) 评论(9) 推荐(17) 编辑
摘要:上篇博文说过当我们定义的类不能遵循约定(Conventions)的时候,Code First提供了两种方式来配置你的类:DataAnnotations 和Fluent API, 本文将关注Fluent API. 一般来说我们访问Fluent API是通过重写继承自DbContext的类中方法OnModelCreating.为了便于例示,我们先创建一个继承自DbContext的类,以及其它的一些类以便使用public class SchoolEntities : DbContext { public DbSet Courses { get; set; } ... 阅读全文
posted @ 2013-12-19 16:53 舍长 阅读(13171) 评论(6) 推荐(16) 编辑
摘要:Entity FrameworkCode First利用一种被称为约定(Conventions)优于配置(Configuration)的编程模式允许你使用自己的domain classes来表示EF所依赖的模型去执行查询、更改追踪、以及更新功能,这意味着你的domain classes必须遵循 EF所使用的约定。然而,如果你的domain classes不能遵循EF所使用的约定,此时你就需要有能力去增加一些配置使得你的classes能够满足EF所需要的信息。 Code First提供了两种方式来配置你的类:DataAnnotations, 使用简单属性;Fluent API, 以编程命令... 阅读全文
posted @ 2013-12-18 18:20 舍长 阅读(12241) 评论(7) 推荐(14) 编辑
摘要:------------------------------------------------------------------------------------------------------------ 注意:以下所讨论的功能或API等只针对Entity Framework 6,如果你使用早期版本,可能部分或全部功能不起作用! ------------------------------------------------------------------------------------------------------------ Entity Framewo... 阅读全文
posted @ 2013-12-17 16:10 舍长 阅读(12276) 评论(6) 推荐(12) 编辑
摘要:Entity Framework 简言之就是一个ORM(Object-Relational Mapper)框架. Code First使得你能够通过C#的类来描述一个模型,模型如何被发现/检测就是通过一些约定(Conventions)。Conventions就是一系列规则的集合,被用于对基于类别定义的概念模型的自动装配。 这些约定都被定义于System.Data.Entity.ModelConfiguration.Conventions命名空间下。 当然你可以进一步地对你的模型作出配置,例如使用Data Annotations或者Fluent API. 推荐的配置顺序如下:优先使用D... 阅读全文
posted @ 2013-12-16 15:50 舍长 阅读(18812) 评论(11) 推荐(17) 编辑
摘要:本文所使用的软件及环境:Visual Studio Ultimate 2013 (下载地址:http://www.visualstudio.com/downloads/download-visual-studio-vs);MVC5 + EF6 + .NET Framework 4.5 + LocalDB;Windows 7 x64 Professional 说明:在EF (Entity Framework,以下简称EF6)框架下,操作数据的方式有三种:Database First, Model First, 以及 Code First,本文基于Code First创建。更多关于EF6请参... 阅读全文
posted @ 2013-12-12 18:05 舍长 阅读(91717) 评论(51) 推荐(12) 编辑