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.Data
12 {
13 public class NorthwindContext : DbContext
14 {
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.Data
12 {
13 public class NorthwindContext : DbContext
14 {
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.Data
12 {
13 public class NorthwindContext : DbContext
14 {
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 }
posted @ 2012-03-30 13:05  libingql  阅读(15340)  评论(5编辑  收藏  举报