Entity Framework 6.x - 创建模型来自于现有数据库

Creating a Model from an Existing Database

一、创建数据库 Chapter2

USE master
GO

CREATE DATABASE Chapter2
GO
USE Chapter2
GO

CREATE TABLE [Meter]
(
[MeterId] [int] NOT NULL IDENTITY(1, 1),
[MeterName] [varchar] (30) COLLATE Chinese_PRC_CI_AS NOT NULL
) ON [PRIMARY]
GO
ALTER TABLE [Meter] ADD CONSTRAINT [PK_Meter] PRIMARY KEY CLUSTERED  ([MeterId]) ON [PRIMARY]
GO

CREATE TABLE [Poet]
(
[PoetId] [int] NOT NULL IDENTITY(1, 1),
[FirstName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL,
[MiddleName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL,
[LastName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL
) ON [PRIMARY]
GO
ALTER TABLE [Poet] ADD CONSTRAINT [PK_Poet] PRIMARY KEY CLUSTERED  ([PoetId]) ON [PRIMARY]
GO

CREATE TABLE [Poem]
(
[PoemId] [int] NOT NULL IDENTITY(1, 1),
[PoetId] [int] NOT NULL,
[Title] [varchar] (255) COLLATE Chinese_PRC_CI_AS NOT NULL,
[MeterId] [int] NOT NULL
) ON [PRIMARY]
GO
ALTER TABLE [Poem] ADD CONSTRAINT [PK_Poem] PRIMARY KEY CLUSTERED  ([PoemId]) ON [PRIMARY]
GO
ALTER TABLE [Poem] ADD CONSTRAINT [FK_Poem_Meter] FOREIGN KEY ([MeterId]) REFERENCES [Meter] ([MeterId])
GO
ALTER TABLE [Poem] ADD CONSTRAINT [FK_Poem_Poet] FOREIGN KEY ([PoetId]) REFERENCES [Poet] ([PoetId])
GO

二、创建项目 CreateModelFromExistingDatabase

三、更新 Entity Framework 到最新版本

四、添加模型文件

完成后,得到如下图模型视图:

重新编译一下项目。

下面我们利用上面建立的模型对数据库进行操作,代码如下:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6
 7 namespace CreateModelFromExistingDatabase
 8 {
 9     class Program
10     {
11         static void Main(string[] args)
12         {
13             //添加数据
14             using (var context = new Chapter2Entities())
15             {
16                 var poet = new Poet { FirstName = "John", LastName = "Milton" };
17                 var poem = new Poem { Title = "Paradise Lost" };
18                 var meter = new Meter { MeterName = "Iambic Pentameter" };
19                 poem.Meter = meter;
20                 poem.Poet = poet;
21                 context.Poems.Add(poem);
22                 poem = new Poem { Title = "Paradise Regained" };
23                 poem.Meter = meter;
24                 poem.Poet = poet;
25                 context.Poems.Add(poem);
26
27                 poet = new Poet { FirstName = "Lewis", LastName = "Carroll" };
28                 poem = new Poem { Title = "The Hunting of the Shark" };
29                 meter = new Meter { MeterName = "Anapestic Tetrameter" };
30                 poem.Meter = meter;
31                 poem.Poet = poet;
32                 context.Poems.Add(poem);
33
34                 poet = new Poet { FirstName = "Lord", LastName = "Byron" };
35                 poem = new Poem { Title = "Don Juan" };
36                 poem.Meter = meter;
37                 poem.Poet = poet;
38                 context.Poems.Add(poem);
39
40                 context.SaveChanges();
41             }
42             //显示数据
43             using (var context = new Chapter2Entities())
44             {
45                 var poets = context.Poets;
46                 foreach (var poet in poets)
47                 {
48                     Console.WriteLine("{0} {1}", poet.FirstName, poet.LastName);
49                     foreach (var poem in poet.Poems)
50                     {
51                         Console.WriteLine("\t{0} ({1})", poem.Title, poem.Meter.MeterName);
52                     }
53                 }
54             }
55             Console.ReadKey();
56         }
57     }
58 }

显示结果:

在到数据库里看一下3个表情况。

Entity Framework 6.x - 创建模型来自于现有数据库,布布扣,bubuko.com

时间: 2024-10-24 22:08:56

Entity Framework 6.x - 创建模型来自于现有数据库的相关文章

MVC5 Entity Framework学习之创建复杂的数据模型

Contoso University示例程序演示了如何使用Entity Framework 6 Code First 和 Visual Studio 2013创建ASP.NET MVC 5应用程序. 在上一篇文章中你已经创建了由三个实体组成的简单的数据模型.在本文章中你将会添加更多的实体和关系,并且通过指定格式.验证和数据库映射规则来自定义数据模型.这里介绍两种自定义数据模型的方法:向实体类中添加属性和向数据库上下文类中添加代码. 下面是完成后的数据模型类图 1.使用属性来自定义数据模型 在本节

Entity Framework学习之创建Entity Framework数据模型

1.准备 Visual Studio 2013 .NET 4.5 Entity Framework 6 (EntityFramework 6.1.0 NuGet package) Windows Azure SDK 2.2 (可选) 2.Contoso University web应用程序 此应用程序允许用户 查看.更新student. course和instructor 信息: 网站UI样式是由内置模板生成的 3.新建MVC5 web应用程序 新建项目并命名为"ContosoUniversit

Entity Framework技术系列之8:使用Entity Framework技术实现RBAC模型

小分享:我有几张阿里云优惠券,用券购买或者升级阿里云相应产品最多可以优惠五折!领券地址:https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=ohmepe03 前言 RBAC(Role-Based Access Control,基于角色的访问控制),是继DAC(Discretionary Access Control,自主访问控制)和MAC(Mandatory Access Control,强制访问控

Entity Framework 学习笔记(一)之数据模型 数据库

关于Entity Framework  数据模型 的开发有三种模式:1.引用数据库方式:2.在VS中新建EF空模型Model 方式:3.Code 方式 Entity Framework  数据模型  引用"引用数据库方式"进行开发创建的使用,具体如下: 开发环境:VS2012 数据库:SQL Server 2008 Entity Framework  版本:6.12 1.新建数据库 在数据库中新建数据库,并创建数据表,以下截图只供参考: 2.新建项目 在VS中新建一个控制台应用程序 F

Entity Framework应用:使用Code First模式管理数据库创建和填充种子数据

一.管理数据库连接 1.使用配置文件管理连接之约定 在数据库上下文类中,如果我们只继承了无参数的DbContext,并且在配置文件中创建了和数据库上下文类同名的连接字符串,那么EF会使用该连接字符串自动计算出数据库的位置和数据库名.比如,我们的数据库上下文定义如下: 1 using System; 2 using System.Collections.Generic; 3 using System.Data.Entity; 4 using System.Linq; 5 using System.

Asp.Net MVC 模型(使用Entity Framework创建模型类) - Part.1

这篇教程的目的是解释在创建ASP.NET MVC应用程序时,如何使用Microsoft Entity Framework来创建数据访问类.这篇教程假设你事先对Microsoft Entity Framework没有任何的了解.读完本篇教程,你将会理解如何使用Entity Framework来选择.插入.更新和删除数据库记录. Microsoft Entity Framework是一个对象关系映射(O/RM)工具,它能你让自动从数据库生成数据访问层.Entity Framework能够使你免于手工

Asp.Net MVC 模型(使用Entity Framework创建模型类)

这篇教程的目的是解释在创建ASP.NET MVC应用程序时,如何使用Microsoft Entity Framework来创建数据访问类.这篇教程假设你事先对Microsoft Entity Framework没有任何的了解.读完本篇教程,你将会理解如何使用Entity Framework来选择.插入.更新和删除数据库记录. Microsoft Entity Framework是一个对象关系映射(O/RM)工具,它能你让自动从数据库生成数据访问层.Entity Framework能够使你免于手工

MVC5 Entity Framework学习之实现主要的CRUD功能

在上一篇文章中,我们使用Entity Framework 和SQL Server LocalDB创建了一个MVC应用程序,并使用它来存储和显示数据.在这篇文章中,你将对由 MVC框架自己主动创建的CRUD(create, read, update, delete)代码进行改动. 注意:通常我们在控制器和数据訪问层之间创建一个抽象层来实现仓储模式.为了将注意力聚焦在怎样使用实体框架上.这里暂没有使用仓储模式. 在本篇文章中,要创建的web页面: watermark/2/text/aHR0cDovL

MVC5 Entity Framework学习之实现基本的CRUD功能

在上一篇文章中,我们使用Entity Framework 和SQL Server LocalDB创建了一个MVC应用程序,并使用它来存储和显示数据.在这篇文章中,你将对由 MVC框架自动创建的CRUD(create, read, update, delete)代码进行修改. 注意:通常我们在控制器和数据访问层之间创建一个抽象层来实现仓储模式,为了将注意力聚焦在如何使用实体框架上,这里暂没有使用仓储模式. 在本篇文章中,要创建的web页面: 1.创建一个Details页面 由框架代码生成的Stud