EF Code First数据库连接配置
前面几节,使用的都是通过EF Code First创建的新数据库,接下来,将开始使用已存在的数据库。
1、使用配置文件设置数据库连接
App.config
数据库连接字符串的name与Data中NorthwindContext.cs类名相同
<?xml version="1.0" encoding="utf-8"?><configuration> <configSections> <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.3.1.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> </configSections> <connectionStrings> <add name="NorthwindContext" connectionString="Data Source=(local); Database=Northwind; User ID=sa; Password=1;" providerName="System.Data.SqlClient"/> </connectionStrings></configuration> Data中NorthwindContext.cs
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 using System.Data.Entity; 7 8 using Northwind.Domain.Entities; 9 using Northwind.Domain.Mapping;10 11 namespace Northwind.Data12 {13 public class NorthwindContext : DbContext14 {15 public DbSet<Category> Categories { get; set; }16 public DbSet<Product> Products { get; set; }17 public DbSet<Supplier> Suppliers { get; set; }18 19 protected override void OnModelCreating(DbModelBuilder modelBuilder)20 {21 modelBuilder.Configurations.Add(new CategoryMap());22 modelBuilder.Configurations.Add(new ProductMap());23 modelBuilder.Configurations.Add(new SupplierMap());24 }25 }26 } 执行成功后,创建的数据库如下图:
2、使用构造函数指定数据库
NorthwindContext.cs
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 using System.Data.Entity; 7 8 using Northwind.Domain.Entities; 9 using Northwind.Domain.Mapping;10 11 namespace Northwind.Data12 {13 public class NorthwindContext : DbContext14 {15 public NorthwindContext()16 { }17 18 public NorthwindContext(string databaseName)19 : base(databaseName)20 {21 22 }23 24 public DbSet<Category> Categories { get; set; }25 public DbSet<Product> Products { get; set; }26 public DbSet<Supplier> Suppliers { get; set; }27 public DbSet<User> Users { get; set; }28 public DbSet<Role> Roles { get; set; }29 30 protected override void OnModelCreating(DbModelBuilder modelBuilder)31 {32 modelBuilder.Configurations.Add(new CategoryMap());33 modelBuilder.Configurations.Add(new ProductMap());34 modelBuilder.Configurations.Add(new SupplierMap());35 modelBuilder.Configurations.Add(new UserMap());36 modelBuilder.Configurations.Add(new RoleMap());37 }38 }39 } Program.cs
using (NorthwindContext db = new NorthwindContext("Northwind")){} 3、使用构造函数指定数据库连接字符串
App.config
1 <?xml version="1.0" encoding="utf-8"?> 2 <configuration> 3 <configSections> 4 <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> 5 <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.3.1.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 6 </configSections> 7 <connectionStrings> 8 <add name="NorthwindConnectionString" connectionString="Data Source=(local); Database=Northwind; User ID=sa; Password=1;" providerName="System.Data.SqlClient"/> 9 </connectionStrings>10 </configuration> NorthwindContext.cs
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 using System.Data.Entity; 7 8 using Northwind.Domain.Entities; 9 using Northwind.Domain.Mapping;10 11 namespace Northwind.Data12 {13 public class NorthwindContext : DbContext14 {15 public NorthwindContext()16 : base("name=NorthwindConnectionString")17 { }18 19 public DbSet<Category> Categories { get; set; }20 public DbSet<Product> Products { get; set; }21 public DbSet<Supplier> Suppliers { get; set; }22 public DbSet<User> Users { get; set; }23 public DbSet<Role> Roles { get; set; }24 25 protected override void OnModelCreating(DbModelBuilder modelBuilder)26 {27 modelBuilder.Configurations.Add(new CategoryMap());28 modelBuilder.Configurations.Add(new ProductMap());29 modelBuilder.Configurations.Add(new SupplierMap());30 modelBuilder.Configurations.Add(new UserMap());31 modelBuilder.Configurations.Add(new RoleMap());32 }33 }34 }
EF Code First数据库连接配置的更多相关文章
- 【译】第8节---EF Code First中配置类
原文:http://www.entityframeworktutorial.net/code-first/configure-classes-in-code-first.aspx 前面的章节中我们知道 ...
- EF Code First 一对多、多对多关联,如何加载子集合?
应用场景 先简单描述一下标题的意思:使用 EF Code First 映射配置 Entity 之间的关系,可能是一对多关系,也可能是多对多关系,那如何加载 Entity 下关联的 ICollectio ...
- 【Docker】 .Net Core 3.1 webapi 集成EF Code First,使用MySql进行业务操作 、配置swagger (三)
系列目录: [Docker] CentOS7 安装 Docker 及其使用方法 ( 一 ) [Docker] 使用Docker 在阿里云 Centos7 部署 MySQL 和 Redis (二) [D ...
- 【EF Code First】 一对一、一对多的多重关系配置
这里使用相册Album和图片Picture的关系做示例 1,Album与Picture最基本的关系是1-n(一个相册可以有多张图片) 这时Album.Picture实体类可以这么定义 /// < ...
- 【EF Code First】 一对多、多对多的多重关系配置
这里使用用户表(User)和项目(Project)表做示例 有这样一个需求: 用户与项目的关系是:一个用户可以发多个项目,可以参加多个项目,而项目可以有多个参与成员和一个发布者 [其中含1-n和n-n ...
- EF Code First 数据迁移配置
这里我想讲清楚code first 数据迁移的两种模式,还有开发环境和生产环境数据迁移的最佳实践. 1.1 数据迁移综述 EF Code first 虽然已经有了几种不同的数据库初始化策略,但是大部分 ...
- EF Code First 学习笔记:约定配置 Data Annotations+Fluent API
要更改EF中的默认配置有两个方法,一个是用Data Annotations(在命名空间System.ComponentModel.DataAnnotations;),直接作用于类的属性上面;还有一个就 ...
- [转载]EF Code First 学习笔记:约定配置
要更改EF中的默认配置有两个方法,一个是用Data Annotations(在命名空间System.ComponentModel.DataAnnotations;),直接作用于类的属性上面;还有一个就 ...
- EF Code First 学习笔记:约定配置
要更改EF中的默认配置有两个方法,一个是用Data Annotations(在命名空间System.ComponentModel.DataAnnotations;),直接作用于类的属性上面;还有一个就 ...
随机推荐
- <读书笔记>001-以解决问题为导向的python编程实践
以解决问题为导向的python编程实践 0.第0章:计算机科学 思考:计算机科学是否为计算机编程的简称? 编程的困难点:1.同时做2件事(编程语言的语法.语义+利用其解决问题) 2.什么是好程序(解 ...
- 最短路(sp
#include<stdio.h> #include<iostream> #include<queue> using namespace std; #define ...
- 【POJ】1426 Find The Multiple
题目链接:http://poj.org/problem?id=1426 题意:给定一个正整数n,找一个比n大且能只由01构成的且能够被n整除的数. 题解:这个就是在后面添0和添1小心试探.一定要是添0 ...
- Neo4j 3.5发布,在索引方面大幅增强
Neo4j 3.5版本已正式发布,这也是Neo4j宣布企业版闭源以来发布的第一个版本. 这个版本在性能.资源使用率以及安全方面均有增强,我们可以先快速浏览一下这个版本: 全文索引 基于Index的快速 ...
- 9_山寨系统调用 SystemCallEntry
思想: 再次在 GDT 中偷内存 搭建 系统调用需要的 逻辑框架与功能实现: 基本分解妄想: 构建系统调用的代码: 拷贝到 偷取的内存中: idt 向量 序号21位置: 8003ee00`0008f1 ...
- python读文件判断是否已到EOF
python读文件判断是否已到EOF,也即结尾,一般其它语言都是以EOF直接来判断的,比如 if ( fp.read(chunk_size) == EOF), 但python到结尾后是返回空字符串的, ...
- 树莓派3B+ 人脸识别、摄像头安装和使用
最近在学校里折腾树莓派上的人脸识别,折腾了很久才能用 在此记录下使用的过程和遇到的困难 过程基于超有趣!手把手教你使用树莓派实现实时人脸检测完成的.其中前面opencv的安装是文章中的Raspbian ...
- duilib教程之duilib入门简明教程6.XML配置界面
前面那些教程都是为了让小伙伴们从win32.MFC过渡到duilib,让大家觉得duilib不是那么陌生,如果大家现在还对duilib非常陌生的话,那就说明前面的教程做得不好,请大家在下面留言,我会一 ...
- 如何在select标签中使用a标签跳转页面
1. 需求: 在select中想直接使用a标签跳转,错误想法 <select id=""> <option>choose one</option> ...
- pycharm同时使用python2.7和python3.5设置方法
pycharm同时使用python2.7和python3.5设置方法 - CSDN博客https://blog.csdn.net/qwerty200696/article/details/530159 ...