CodeFirst的一些操作!!

转载 2016-08-05 21:03:32

1 首先是codefirst怎么做,这个首先肯定要引入EntityFramework,然后在model中创建实体类,例如书籍与出版社publisher和book两个实体类,然后再publisher里有个字段是Icolloction,因为一个出版社有很多书,而书只属于一个出版社,然后再配置实体的数据类型EntityTypeConfiguration,然后在Dbcontext中的OnCreating方法中增加这些配置就可以了。

2 接下来就是可能会发生代码迁移,那就是用Enable-Migrations和update-database,就在包管理器的控制台下输入命令就可以了。

​​​​​3 说说遇到的问题吧,codefirst有一个缺点就是当字段标记为主键时EF会认为这个标记为标识列,但是数据库却不同步,所以会产生错误。幸亏EF提供了许多特性,利用DatabaseGenerated(DatabaseGeneratedOption.None)就可以防止标记为标识列。也可以在设置约束的时候进行这个配置。

4 关于增删改查。

1)​ 增:DbContext.Entitys.Add(entity);

DbContext.saveChanges();

2)删:DbContext.Entitys.Attach(entity);

DbContext.Entitys.Remove(entity);​

DbContext.savechanges();

3) 改:DbContext.Entitys.Attach(entity);

DbContext.Entry(entity).state=EntityState.Modified;​

DbContext.savechanges();​

CodeFirst的一些操作!!的更多相关文章

  1. EF Codefirst方式数据库维护操作

    关于EF codefirst方式数据库维护操作 1.数据实体更新 2.打开pm - 锁定项目:MLearning.Data 3.执行命令 : add-migration [名称] 4.检查无误后,执行 ...

  2. EF CodeFirst 数据库的操作

    生成数据库 首先需要通过Nuget安装Migration 这一步是初始化Migration操作. 首先打开程序包控制台, 工具——NuGet包管理器——程序包管理控制台 打开后,在控制台输入下面的命令 ...

  3. EF使用CodeFirst方式生成数据库&技巧经验

    前言 EF已经发布很久了,也有越来越多的人在使用EF.如果你已经能够非常熟练的使用EF的功能,那么就不需要看了.本文意在将自己使用EF的方式记录下来备忘,也是为了给刚刚入门的同学一些指导.看完此文,你 ...

  4. .netcore基于mysql的codefirst

    .netcore基于mysql的codefirst 此文仅是对于netcore基于mysql的简单的codefirst实现的简单记录.示例为客服系统消息模板的增删改查实现 第一步.创建实体项目,并在其 ...

  5. EntityFrameworkCore 根据实体类自动创建数据库

    1.首先新建 Asp.Net Core WebApi 项目 2.添加一下引用 : 2.1   Pomelo.EntityFrameworkCore.MySql(我用的Mysql 根据自己情况引用就行) ...

  6. Reface.AppStarter 类型扫描 —— 获得系统中所有的实体类型

    类型扫描 是 Reface.AppStarter 提供的最基本.最核心的功能. AutoConfig , ComponentScan 等功能都是基于该功能完成的. 每一个使用 Reface.AppSt ...

  7. EF Codefirst 多对多关系 操作中间表的 增删改查(CRUD)

    前言 此文章只是为了给新手程序员,和经验不多的程序员,在学习ef和lambada表达式的过程中可能遇到的问题. 本次使用订单表和员工表建立多对多关系. 首先是订单表: public class Ord ...

  8. EF-关于类库中EntityFramework之CodeFirst(代码优先)的操作浅析

    前有ADO.NET,后有ORM模式的EntityFramework.这两种技术都实现了对数据库的访问操作.如果要说哪种技术好,就看项目架构的大小,使用者的熟练程度等等,毕竟萝卜白菜,各有所爱. 今天要 ...

  9. 关于使用CodeFirst,修改类或上下文时操作数据库报错解决方法

    在操作已经创建好的数据库时,若是添加新的实体类或者修改原有数据库上下文,会报如下错误: The model backing the 'StudentDbContext' context has cha ...

随机推荐

  1. Java 重写hashCode 方法和equals方法

    package Container; import java.util.HashSet; import java.util.Iterator; /* Set 元素是无序的(存入和取出的顺序不一定一致) ...

  2. SQLite基础回顾

    SQLite基础回顾 SQLite iOS中的数据存储方式 Plist(NSArray\NSDictionary) Preference(偏好设置\NSUserDefaults) NSCoding(N ...

  3. ACM入门:第s名的小红

    前几天的大一新生赛自己也跟着做了做,顺便测测后台数据有没有bug,这是一道排序题,题目如下: Problem Description 小红总是排第二,有点不服气,现在她想知道一个序列中第二小的数字是多 ...

  4. 基于Blod的ajax进度条下载实现

    普通的浏览器下载 在web开发中,如果要实现下载功能,往往都是使用新开web页面或者是使用iframe的形式.实现起来其实很简单: <a target="_blank" hr ...

  5. JS分两种数据类型,你都知道吗?

    大牛请无视此篇! JS主要分基本数据类型和引用数据类型,这两者区别可大了,此篇看完必有长进,下面进入正题 首先我们看下什么是基本数据类型(概念我就不说了,直接上代码): var i = 10: var ...

  6. UCSC genome browser 个人track 安装

    处理基因组数据,很多时候我们会觉得直接看序列文件不够直观,如果绘图的话,把n多G把数据用画图出来不仅费劲,就算操作也不方便.因此我们可以用UCSC开发出的genome browser,可以直接把数据信 ...

  7. maven配置文件setting.xml字段注释

    maven的配置文件为settings.xml,在下面路径中可以找到这个文件,分别为: $M2_HOME/conf/settings.xml:全局设置,在maven的安装目录下: ${user.hom ...

  8. Java垃圾回收学习笔记

    通常来说,要写Java代码,你基本上都没必要听说垃圾回收这个概念的.这不,对于已经写了5年多Java代码的我来说,我还没有哪次经历说是需要使用垃圾回收方面的知识来解决问题的.但是,我依然督促自己花了几 ...

  9. 3403: [Usaco2009 Open]Cow Line 直线上的牛

    3403: [Usaco2009 Open]Cow Line 直线上的牛 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 71  Solved: 62[S ...

  10. 1029: [JSOI2007]建筑抢修

    1029: [JSOI2007]建筑抢修 Time Limit: 4 Sec  Memory Limit: 162 MBSubmit: 2382  Solved: 1033[Submit][Statu ...