ef mysql 约定_EF 6.0 入门系列 - 数据库连接

前言

Entity Framework (以下简称EF) 允许您创建一个模型(使用代码优先方法或建模工具),可以连接一个现有数据库或创建一个新的数据库。 一般来说,你将扩展DbContext,派生类将调用基类的一个基础构造函数来找出如何连接到数据库。 .Net框架现在倾向于使用“约定胜于配置”原则,这一点在DbContext如何发现数据库是非常明显的。 本篇我们将介绍一些Code First 模式下,连接数据库的不同方法。

约定连接

先看一个最简单的DBContext

namespace EFDemoWeb

{

public class DemoContext : DbContext

{

public DbSet Contact { get; set; }

}

public class Contact

{

public int ID { get;set; }

public string Name { get; set; }

public DateTime birthday { get; set; }

public string Phone { get; set; }

}

}

使用上面这段代码,没有在应用程序中进行其他设置,那么当应用程序新建DBContext实例的时候,无参构造函数的DBContext,EF默认运行在Code First模式下,连接字符串按照约定进行构造。在这个例子中,使用包含命名空间的类名,即“EFDemoWeb.DemoContext”作为数据库名称。

一个空WEB项目中,最基本的Web.config文件内容

Nuget引用Entity Framework之后的Web.config文件内容

......

......

EF默认使用Microsoft SQL Server LocalDB作为数据库引擎,可以看到,在config文件中并没有连接字符串出现,数据库文件放在哪儿呢?

根据项目类型不同,VS自动产生的连接字符串会有所不同。

控制台项目/Winform/WPF等客户端项目

Data Source=(localdb)\v11.0;AttachDbFilename=EFDemoWeb.DemoContext.mdf;Initial Catalog=EFDemoWeb.DemoContext;Integrated Security=True;MultipleActiveResultSets=True

Web项目

Data Source=(localdb)\v11.0;AttachDbFilename=|DataDirectory|EFDemoWeb.DemoContext.mdf;Initial Catalog=EFDemoWeb.DemoContext;Integrated Security=True;MultipleActiveResultSets=True

对于没有“|DataDirectory|”的连接字符串,数据库文件将会保存在“C:\Users\UserName”文件夹下。

在Web项目中,默认会创建一个App_Data文件夹,|DataDirectory|默认指向此文件夹。

可以使用代码修改|DataDirectory|的文件夹路径。

AppDomain.CurrentDomain.SetData(“DataDirectory”, newpath)

配置连接

在App.config或者Web.config文件中配置连接字符串,就不细说了,因为几乎90%的Web项目Demo里面都有类似这样的配置项

name="NorthwindConnectionString"

connectionString="Data Source=serverName;Initial

Catalog=Northwind;Persist Security Info=True;User

ID=userName;Password=password"

providerName="System.Data.SqlClient"

/>

参考资料

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值