使用EF CodeFirst 创建数据库
2018-06-17 22:37:01来源:未知 阅读 ()
EntityFramework
在VS2015添加新建项时,选择数据->ADO.NET 实体数据模型,有一下选项
来自数据库的EF设计器,这个就是我们最常用的EntityFramework设计模型了,选择它,然后根据设计好的数据库,就会生成一个edmx文件,和一个数据库上下文,然后我们就可以不用写sql也可以愉快的访问数据啦,但是这种方式对于经常变动的数据库结构,更新起来经常会有一些bug,原数据库删除的字段和结构,在edmx中更新模型是需要手动删除的
CodeFirst
CodeFitst的出现给.net开发提供了一种新的方式,这种以代码优先的数据库模型更能适应需求的变更和产品迭代开发,接下来就以一个简单的实例来看一下怎么使用它吧
1.在自己的解决方案下添加一个类库项目Domain,然后添加一个实体
public class User { public int Id { get; set; } public int UserName { get; set; } public string Password { get; set; } }
2.添加数据库上下文
public class DBContext:DbContext { public DBContext() : base("Blog") { } public DbSet<User> Users { get; set; } }
3.配置数据库连接字符串
需要注意的事,连接字符串需要写到启动项目中,如果当前启动项目是Domain,那它就是以Domain的App.comfig为准,如果是web项目就是Web.config
一般情况下两个都写一下吧
<connectionStrings>
<add name="Blog" connectionString="server=.;database=Blog;uid=sa;pwd=123" providerName="System.Data.SqlClient"/>
</connectionStrings>
4.通常这个时候只需要运行你的程序,系统就会自动创建数据库了,还有一种方法就是使用migration创建你的数据库
打开程序包管理控制台,注意默认项目是Domain
PM> Enable-Migrations
你会发现Domain下多了一个Migrations文件夹,并且有一个名称为Configuration的类(用于更新)
打开程序包管理控制台
PM> Add-Migration Init
这个时候,它会根据DBContext上下文下的模型来和以往的版本比较,并且生成更新文件,此时没有以往版本,所以更新内容如下
namespace Domain.Migrations { using System; using System.Data.Entity.Migrations; public partial class Init : DbMigration { public override void Up() { CreateTable( "dbo.Users", c => new { Id = c.Int(nullable: false, identity: true), UserName = c.Int(nullable: false), Password = c.String(), }) .PrimaryKey(t => t.Id); } public override void Down() { DropTable("dbo.Users"); } } }
Up用于更新,Down用于回退这个很好理解
PM> Update-database
打开Sql Server(如果用的localDb就在localDb中查看)查看数据库
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Django项目中使用qq第三方登录。 2019-08-13
- Python连载30-多线程之进程&线程&线程使用 2019-08-13
- Python学习日记(十) 生成器和迭代器 2019-08-13
- 【Python】语法基础 | 开始使用Python 2019-08-13
- 使用scrapy框架爬取全书网书籍信息。 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash