EF CodeFirst Dome学习
创建ConsoleDome控制台应用程序

从NuGet包管理器安装EntityFramework

创建DbContextDome类并继承DbContext
public class DbContextClass : DbContext
{
/// <summary>
/// ConnectionString就是在config中设置的数据库链接字符串
/// </summary>
public DbContextClass()
: base("ConnectionString")
{ } public DbSet<user> user { get; set; } public DbSet<BlogModel> blog { get; set; }
}
设置config
<connectionStrings>
<add name="ConnectionString" connectionString="server=.;database=EFCodeFirstDB;uid=***;pwd=***" providerName="System.Data.SqlClient"/>
</connectionStrings>
创建实体模型
public class user
{
public int id { get; set; } public string username { get; set; } public string pwd { get; set; } [Column(TypeName = "nvarchar")]
[MaxLength(200)]
public string Email { get; set; }
public string pwdd { get; set; }
} public class BlogModel
{
public int id { get; set; }
/// <summary>
///
/// </summary>
public string Tiele { get; set; }
/// <summary>
///
/// </summary>
public string TieleUrl { get; set; }
/// <summary>
///
/// </summary>
public string Content { get; set; }
/// <summary>
///
/// </summary>
public string ImgUrl { get; set; }
/// <summary>
///
/// </summary>
public DateTime CreateDate { get; set; }
/// <summary>
///
/// </summary>
public string ReadNumber { get; set; }
}
在程序包管理器控制台执行Enable-Migrations来创建Configuration配置ef

最后执行Update-Database -Verbose来更新数据库
附加codefirst命令
一、Enable-Migrations
说明:为项目启用迁移。此命令为项目添加Migrations文件夹,其中包括两个文件:
Configuration类:此类允许针对上下文配置迁移的行为
InitialCreate迁移:此迁移在启用迁移之前生成。如果在启用迁移之前没有生成数据库,则不会将此文件加入到项目中,而是在首次调用"Add-Migration"命令时生成。
语法:Enable-Migrations
二、Add-Migration
说明:根据上一次迁移以来对模型所做的更改,为下一次迁移搭建基架。
语法:Add-Migration "[Name]"
Name:迁移显示名字,将与当前生成文件时间戳构成生成的迁移文件名
三、Update-DataBase
说明:将所有挂起的迁移应用与数据库
语法:Update-Database -[Option]
Option:Vcrbose 在控制台显示迁移所运行的SQL
TargetMigration:[Name] 迁移到特定的版本,如果需要回滚到空数据库,则可以将[Name]写为$InitialDatabase
Script 是迁移生成脚本而不执行
SourceMigration:[Name]源迁移
四、自动迁移
说明:在部署应用程序时希望在应用程序启动时通过虽有挂起的迁移自动升级数据库
代码:Database.SetInitializer(new MigrateDatabaseToLatestVersion<DbContext, Configuration>());
五、性能问题
EFlinq的性能远不如sql,在EF中有SqlQuery接口,查询效率高出很多,另外AsNoTracking设置不跟踪查询(只做查询使用)。在EF中如果只是为了筛选实体或者改变实体的变量不要使用ToList,效率极低,用AsEnumerable或AsQueryable。
EF CodeFirst Dome学习的更多相关文章
- EF Codefirst 初步学习(二)—— 程序管理命令 更新数据库
前提:搭建成功codefirst相关代码,参见EF Codefirst 初步学习(一)--设置codefirst开发模式 具体需要注意点如下: 1.确保实体类库程序生成成功 2.确保实体表类库不缺少 ...
- EF CodeFirst学习
EF CodeFirst 真是时光如梦,岁月如歌,自己一不留神就被后浪拍在了沙滩上,就连我要学的这个东西也是12年就在博客园很火了. EF有三种开发模式,DatabaseFirst, ModelFir ...
- 1.【使用EF Code-First方式和Fluent API来探讨EF中的关系】
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/relationship-in-entity-framework-using-code-firs ...
- EF Code First学习系列
EF Model First在实际工作中基本用不到,前段时间学了一下,大概的了解一下.现在开始学习Code First这种方式.这也是在实际工作中用到最多的方式. 下面先给出一些目录: 1.什么是Co ...
- [.NET领域驱动设计实战系列]专题一:前期准备之EF CodeFirst
一.前言 从去年已经接触领域驱动设计(Domain-Driven Design)了,当时就想自己搭建一个DDD框架,所以当时看了很多DDD方面的书,例如领域驱动模式与实战,领域驱动设计:软件核心复杂性 ...
- EF CodeFirst 如何通过配置自动创建数据库<当模型改变时>
最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷 学无止境,精益求精 本篇为进阶篇,也是弥补自己之前没搞明白的地方,惭愧 ...
- EF CodeFirst增删改查之‘CRUD’
最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷 学无止境,精益求精 本篇旨在学习EF增删改查四大操作 上一节讲述了EF ...
- EF CodeFirst 创建数据库
最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷 学无止境,精益求精 话说EF支持三种模式:Code First M ...
- EF Codefirst 中间表(关系表)的增删改查(转)
EF Codefirst 多对多关系 操作中间表的 增删改查(CRUD) 前言 此文章只是为了给新手程序员,和经验不多的程序员,在学习ef和lambada表达式的过程中可能遇到的问题. 本次使用订 ...
随机推荐
- 有关于服务端模板注入(ssti攻击)——BUUCTF - easy_tornado
打开题目出现3个链接 /flag.txt 中提示flag in /fllllllllllllag /welcome.txt 中提示 render /hints.txt 中提示 md5(cookie_s ...
- [Gamma]Scrum Meeting#2
github 本次会议项目由PM召开,时间为5月27日晚上10点30分 时长10分钟 任务表格 人员 昨日工作 下一步工作 木鬼 撰写博客,组织例会 撰写博客,组织例会 swoip 前端显示屏幕,翻译 ...
- Spring Boot打war包和jar包的目录结构简单讲解
Spring Boot项目可以制作成jar包和war包,其目录结构是不一样的,具体的如下所示: 1.war包目录结构分析WAR(Web Archivefile)网络应用程序文件,是与平台无关的文件格式 ...
- 虚拟环境上的jupyterhub开机启动设置
为了让jupyterhub 开机启动,或者以服务的方式启动,折腾了好久.环境 ubuntu 16.04anaconda >= 4.5python35 jupyterhub 0.9.4node 6 ...
- Netty 4 实现一个 NettyClient
本文章为作者原创,有问题的地方请提出指正. 1.类继承Diagram 2.定义EndPoint类 目前仅仅定义了2个方法,分别用来获取本地或远程服务器的地址. package netty; impor ...
- 002-Python3-基础语法-赋值、显示类型、数据类型[数值、字符串、列表、元祖、集合、字典]
一.基础语法 参看地址:https://www.runoob.com/python3/python3-tutorial.html 基础数据类型 Python 中的变量不需要声明.每个变量在使用前都必须 ...
- HDFS API 测试用例
增加依赖 <!--hadoop--> <dependency> <groupId>org.apache.hadoop</groupId> <art ...
- Qt编写安防视频监控系统15-远程回放
一.前言 远程回放有两种处理方式,一种是采用NVR厂家提供的SDK开发包来登录到NVR上,然后根据SDK的函数接口指定的视频文件,当然也有接口查询视频文件列表等:一种是采用视频监控行业的国标GB281 ...
- table 随td固宽
//给table,td定最小宽度 table.sheetbody{table-layout: %;} td,th{ min-width: 100px; } <table border=" ...
- java基础:
java基础: 内容. 待续........