代码优先-Code First
非常有用的两篇文章
EF有三种开发模式:Model First,Database First 和 Code First。 本文主要介绍Code First模式,Code First即代码优先,就是先编写业务实体模型类,然后通过程序包管理器控制台创建数据库。
一、安装EntityFramework
在项目上右键菜单,点击“管理NuGet程序包”,搜索“EntityFramework”,在项目中安装最新版本的EntityFramework。
二、修改配置文件
EntityFramework安装完成后,会自动生成一个App.confing文件,内容如下:
<?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=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="v11.0" />
</parameters>
</defaultConnectionFactory>
</entityFramework>
</configuration>
如果不添加数据库连接字符串,数据库默认会声称在App_Data文件夹下,在一般项目中我们还需修改此配置文件,内容如下:
<?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=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />-->
</configSections>
<!--<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="v11.0" />
<parameter value="shz-pc\sqlexpress2012"/>
</parameters>
</defaultConnectionFactory>
</entityFramework>-->
<connectionStrings>
<add name="SAUnitOfWork" connectionString="Data Source=shz-pc\SQLEXPRESS2012;Initial Catalog=AccountingSys;User ID=sa;Password=sa" providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
三、创建实体模型类和DbContext
贴出部分实例代码:
/// <summary>
/// 用户信息表
/// </summary>
public class User : Entity
{
[Required]
[StringLength()]
/// <summary>
/// 用户名
/// </summary>
public string Name { get; set; } [Required]
[StringLength()]
/// <summary>
/// 登录Id
/// </summary>
public string LoginId { get; set; } [Required]
[StringLength()]
/// <summary>
/// 登录密码
/// </summary>
public string Password { get; set; } [StringLength()]
/// <summary>
/// 手机号
/// </summary>
public string Mobile { get; set; } [StringLength()]
/// <summary>
/// 邮箱
/// </summary>
public string Email { get; set; } [Required]
/// <summary>
/// 用户状态(0:禁用;1:启用)
/// </summary>
public int Status { get; set; } }
以下是数据上下文类:
public class SAUnitOfWork : DbContext, IQueryableUnitOfWork
{
public DbSet<Operation> Operation { get; set; }
public DbSet<PurchaseDetail> PurchaseDetail { get; set; }
public DbSet<PurchaseHeader> PurchaseHeader { get; set; }
public DbSet<Role> Role { get; set; }
public DbSet<RoleOperations> RoleOperations { get; set; }
public DbSet<SettlementDetail> SettlementDetail { get; set; }
public DbSet<SettlementHeader> SettlementHeader { get; set; }
public DbSet<User> User { get; set; }
public DbSet<UserRoles> UserRoles { get; set; }
}
四、启用程序包管理器控制台
在VS菜单栏“工具”→“库程序包管理器”→打开“程序包管理器控制台”:
1.启用 Code First 迁移命令:Enable-Migrations
2.为迁移搭建基架:Add-Migration Initial
3.开始迁移:Update-Database
执行完以上三个命令后,你会发现在你的数据库服务实例中已经生成了数据库:
代码优先-Code First的更多相关文章
- Entity Framework:代码优先
一.代码优先Code First EF6支持Oracle ODT 12C Release 3 (net4.5) DataModel(类)-->生成数据库DB 或 存在的数据库DB-->生成 ...
- 七:mvc使用CodeFirst(代码优先)创建数据库
1. 理解EF CodeFirst模式特点 2. 使用CodeFirst模式生成数据库 1. CodeFirst模式(代码优先) Code First是Entity Framework提供的一种新的编 ...
- C# ORM—Entity Framework 之Code first(代码优先)(二)
一.Entity Framework Code first(代码优先)使用过程 1.1Entity Framework 代码优先简介 不得不提Entity Framework Code First这个 ...
- EF之Code First代码优先
1.前言 通过英文可知,表示的是代码优先,一般创建EF都是先创建数据库,创建根据数据库的EF实体模型,而code - first 则是反过来!... 2.代码实战 我们这次创建的不是原来的数据库EF设 ...
- EF Code First 使用 代码优先迁移(三)
迁移到特定版本(包括降级) 到目前为止,我们一直升级到最新的迁移,但有时您可能需要升级/降级到特定的迁移. 这是目前我数据库中的表:有四个表,我降级到addEndTime这个版本(这个版本是没有gra ...
- 实体框架自定义代码优先约定(EF6以后)
仅限EF6仅向前 - 此页面中讨论的功能,API等在实体框架6中引入.如果您使用的是早期版本,则部分或全部信息不适用. 使用Code First时,您的模型是使用一组约定从您的类计算的.默认的Code ...
- EF框架搭建小总结--CodeFirst代码优先
前言:之前在下总结编写了一篇 EF框架搭建小总结--ModelFirst模型优先 博文,看到一段时间内该博文的访问量蹭.蹭蹭.蹭蹭蹭...往上涨(实际也不是很多,嘿嘿),但是还是按捺不住内心的喜悦(蛮 ...
- 基于 abp vNext 和 .NET Core 开发博客项目 - 数据访问和代码优先
上一篇文章(https://www.cnblogs.com/meowv/p/12909558.html)完善了项目中的代码,接入了Swagger.本篇主要使用Entity Framework Core ...
- 结合实体框架(代码优先)、工作单元测试、Web API、ASP. net等,以存储库设计模式开发示例项目。NET MVC 5和引导
介绍 这篇文章将帮助你理解在库模式.实体框架.Web API.SQL Server 2012.ASP中的工作单元测试的帮助下设计一个项目.净MVC应用程序.我们正在开发一个图书实体和作者专用的样例图书 ...
随机推荐
- 异步导出excel
最近看园里有几篇写有关导出导入excel的博客,我正好最近在项目中也有涉及想来一起分享一下,正好整理一下自己的思路. 一.异步的方式是通过iframe来实现,代码如下: if ($('#downloa ...
- 问题记录-Fragment导包不同导致无法自动转型
代码如下 public class MainActivity extends FragmentActivity { @Override public void onCreate(Bundle save ...
- STM32F0xx_SPI读写(Flash)配置详细过程
Ⅰ.概述 关于SPI(Serial Peripheral Interface)串行外设接口可以说是单片机或者嵌入式软件开发人员必须掌握的一项通信方式,就是你在面试相关工作的时候都可能会问及这个问题.在 ...
- 将python2.7+django1.10部署到SAE上
首先我想说的是我为什么选择SAE呢?本人学生一枚,没钱.然后sae好像又有免费的一定限额,所以我就选了它. 期间曲折颇多,实在不是三言两语所能道情的.各种百度,谷歌,最后所幸成功了,幸哉! 主要参考了 ...
- flask 开发记录
from flask import request 判断method方式 request.method 'POST', ‘GET’ 获取form内容 request.form['form_name' ...
- 算法系列8《Base64》
Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,Base64编码可用于在HTTP环境下传递较长的标识信息.在其他应用程序中,也常常需要把二进制数据编码为适合放在URL(包括隐藏表单 ...
- bat完美关机命令
@echo off title OLIVER-COMPUTER mode con cols= lines= color 0d shutdown /a >nul >nul ver > ...
- oracle 修改表空间存储路径
[root@yoon ~]# more /etc/oracle-releaseOracle Linux Server release 5.7 Oracle Database 11g Enterpris ...
- [译] Swift 的响应式编程
原文 https://github.com/bboyfeiyu/iOS-tech-frontier/blob/master/issue-3/Swift的响应式编程.md 原文链接 : Reactiv ...
- django概述
一.django的特点 1.提供一体化的web解决方案,什么叫一体化:mvc 2.等你玩儿牛逼了可以拔插组件,换成自己顺手或者更牛逼的组件