1. NuGet 下载EntityFramework.

2. 定义Context 和 打开NuGet 命令 执行 Enable-Migrations , Libaray.DAL.Migrations.Configuration 要在执行命令后自动产生.

using Libaray.Models.Entities;
using Libaray.Models.Maps;
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace Libaray.DAL
{
public class LibarayContext : DbContext
{
public LibarayContext(): base("name = LibCon")
{
Database.SetInitializer(new MigrateDatabaseToLatestVersion<LibarayContext, Libaray.DAL.Migrations.Configuration>()); //重要
} public DbSet<UserModel> UserModels { get; set; }
public DbSet<UserInRoleModel> UserInRoleModels { get; set; }
public DbSet<UserRoleModel> UserRoleModels { get; set; }
public DbSet<BookModel> BookModels { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Configurations.Add(new UserInRoleModelMap());
modelBuilder.Configurations.Add(new UserRoleModelMap());
modelBuilder.Configurations.Add(new UserModelMap());
modelBuilder.Configurations.Add(new BookModelMap());
}
}
}

3. 修改configuration

namespace Libaray.DAL.Migrations
{
using System;
using System.Data.Entity;
using System.Data.Entity.Migrations;
using System.Linq; internal sealed class Configuration : DbMigrationsConfiguration<Libaray.DAL.LibarayContext>
{
public Configuration()
{
AutomaticMigrationsEnabled = true;
AutomaticMigrationDataLossAllowed = true;
} protected override void Seed(Libaray.DAL.LibarayContext context)
{ }
}
}

4. 实体类例子

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace Libaray.Models.Entities
{
public class BookModel
{
public Guid BookId { get; set; }
public string BookName { get; set; }
public string Author { get; set; }
public string BookDescription { get; set; }
public DateTime BookDate { get; set; }
public DateTime CreatedOn { get; set; }
public Guid CreatedBy { get; set; }
public DateTime UpdatedOn { get; set; }
public Guid UpdatedBy { get; set; }
}
}

5. 实体类Mapping

using Libaray.Models.Entities;
using System;
using System.Collections.Generic;
using System.Data.Entity.ModelConfiguration;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace Libaray.Models.Maps
{
public class BookModelMap : EntityTypeConfiguration<BookModel>
{
public BookModelMap()
{
this.HasKey(u => u.BookId);
this.Property(u => u.BookId).HasDatabaseGeneratedOption(System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption.Identity);
}
}
}

设置EntityFramework 在开发时自动更新数据库的更多相关文章

  1. 如何设置“用eclipse开发时自动在顶端产生import”?

    eclipse新版本中的默认设置可能导致自动在生成import时是在代码中,而大多数时间我们需要自动生成import在代码顶端,按照如下设置即可纠正

  2. 解决SpringBoot+JPA中使用set方法时自动更新数据库问题

    项目进行了三分之二了,突然出现一个很诡异的bug,数据库存储的用户表中密码信息总是自动消失一部分,头疼了几天后突然想起同事有个对低权限用户查询的用户信息向前台传送时会把密码设成null后再传输,心想是 ...

  3. Code First 下自动更新数据库结构(Automatic Migrations)

    示例 Web.config <?xml version="1.0" encoding="utf-8"?> <configuration> ...

  4. EntityFrameworkCore使用Migrations自动更新数据库

    EntityFrameworkCore使用Migrations自动更新数据库 系统环境:Win10 IDE:VS2017 RC4 .netcore版本:1.1 一.新建ASP.NET Core Web ...

  5. winform datagridview 不显示默认第一列 不显示未绑定列 数据源发生改变时自动更新 (转)

    不显示带星号的第一列: datagridview属性框中将 RowHeadersVisiber 设置为  false 不显示未绑定列: datagridview有一个属性是 AutoGenerateC ...

  6. EF修改model自动更新数据库

    最近用MVC+EF学习时遇到修改model后而数据库没更新报错,就在网上找关于数据迁移自动更新数据库的,折腾了大半天终于弄了出来 第一步:在程序包管理器控制台里: Enable-Migrations ...

  7. day35-hibernate映射 03-Hibernate持久态对象自动更新数据库

    持久态对象一个非常重要的能力:自动更新数据库. package cn.itcast.hibernate3.demo1; import static org.junit.Assert.*; import ...

  8. 扩展BindingList,防止增加、删除项时自动更新界面而不出现“跨线程操作界面控件 corss thread operation”异常

    在做界面程序时,常常需要一些数据类,界面元素通过绑定等方式显示出数据,然而由于UI线程不是线程安全的,一般都需要通过Invoke等方式来调用界面控件.但对于数据绑定bindingList而言,没法响应 ...

  9. T450设置插入USB鼠标时自动禁用触摸板

    刚入手T450,打字时经常碰到触摸板,很是恼火,于是求助万能的度娘,找了卡饭基佬的教程,实测可行,大家可以试试.<win7下如何设置插入USB鼠标时自动禁用触摸板>,地址:www.kafa ...

随机推荐

  1. 【Xamarin开发 Android 系列 8】 创建一个Json读取数据应用(上)

    后续将内容贴上来...........

  2. MySQL的SQL_CALC_FOUND_ROWS真的很慢么?

    分页程序一般由两条SQL组成: SELECT COUNT(*) FROM ... WHERE .... SELECT ... FROM ... WHERE LIMIT ... 如果使用SQL_CALC ...

  3. Linux企业级项目实践之网络爬虫(18)——队列处理

    所有的URL都接受管理,并在此进行流动.URL从管理模块的存储空间开始,一直到最后输出给磁盘上的URL索引,都由此部分调度.首先,给出URL调度的一般过程,如图所示.其流程的各个具体操作,后面详述.要 ...

  4. 【剑指offer】面试题39扩展:平衡二叉树

    题目: 输入一棵二叉树,判断该二叉树是否是平衡二叉树. 思路: 直观的思路是,判断根结点的左子树.右子树高度差是否小于1. 为避免多次访问同一结点,应该用后序遍历的方式访问. 注意:加号优先级高于条件 ...

  5. poj 1328 Radar Installation(贪心)

    Description Assume the coasting is an infinite straight line. Land is in one side of coasting, sea i ...

  6. web前端之 DOM

    文档对象模型(Document Object Model,DOM)是一种用于HTML和XML文档的编程接口.它给文档提供了一种结构化的表示方法,可以改变文档的内容和呈现方式.我们最为关心的是,DOM把 ...

  7. 搭建完全分布式的hadoop[转]

    hadoop 创建用户及hdfs权限,hdfs操作等常用shell命令 sudo addgroup hadoop#添加一个hadoop组sudo usermod -a -G hadoop larry# ...

  8. Dalvik虚拟机Java堆创建过程分析

    文章转载至罗升阳CSDN社区博客,原地址: http://blog.csdn.net/luoshengyang/article/details/6557518 近年来,手机移动平台越来越火爆.打开自己 ...

  9. JavaScript 公有 私有 静态属性和方法

    1.公有属性和公有方法 这里的 name  age  都是参数传递进去 可以在外面直接实例化调用. 2.私有属性和方法 私有的只能在函数内部使用 作用域的原因 3.静态属性和静态方法 这里我首先 创建 ...

  10. 基于akka实现简单的主从框架

    ========================Master============================== package com.scala.akka.rpc.demo2 import ...