一、FluentAPI:

1、基本配置:

  1. namespace ConsoleApp14.ModelConfig
  2. {
  3. public class PersonConfig: EntityTypeConfiguration<Person>
  4. {
  5. //继承自EntityTypeConfiguration,并将Person传进来
  6. public PersonConfig()
  7. {
  8. this.ToTable("T_Persons");
  9. }
  10. }
  11. }
  1. public class TestDbContext:DbContext
  2. {
  3. public TestDbContext():base("name=connstr")//name=connstr 表示使用连接字符串中名字为connstr的数据库
  4. {
  5.  
  6. }
  7. public DbSet<Person> Persons { get; set; }
  8.  
  9. protected override void OnModelCreating(DbModelBuilder modelBuilder)
  10. {
  11. base.OnModelCreating(modelBuilder);
  12. //用法一:从本程序集中加载所有继承自EntityTypeConfiguration类的配置
  13. modelBuilder.Configurations.AddFromAssembly(
  14. Assembly.GetExecutingAssembly());
  15. //用法二: 从指定的程序集中加载所有的继承自EntityTypeConfiguration类的配置
  16. // modelBuilder.Configurations.AddFromAssembly(
  17. // Assembly.Load("ModelConfig"));
  18.  
  19. //用法三:
  20. // modelBuilder.Entity<Person>().ToTable("T_Person");
  21. //用法四:
  22. // modelBuilder.Configurations.Add(new PersonConfig());
  23. }
  24.  
  25. }

二、EF增删查改:

获取Dbset除了可以ctx.Persons之外,还可以ctx.Set<Person>()

1、增加:ctx.Persons.Add(p1) ;  ctx.SaveChange();

2、删除:先查询出要删除的数据,然后Remove。这种方式问题最少,虽然性能低,但是删除操作一般不频繁,不用考虑性能。

  1. using (TestDbContext ctx = new TestDbContext())
  2. {
  3. var ps= ctx.Persons.Where(p => p.Id ==).SingleOrDefault();
  4.  
  5. if(ps==null)
  6. {
  7. Console.WriteLine("没有ID为3的人");
  8. }
  9. else
  10. {
  11. ctx.Persons.Remove(ps); //单个删除
  12. }
  13. }
  1. var ps= ctx.Persons.Where(p => p.Id >);
  2.  
  3. ctx.Persons.RemoveRange(ps); //批量删除

3、改:先查询出来,然后修改数据,最后SaveChange()

4、查询:因为Dbset实现了IQueryable 接口,而IQueryable 继承了IEnumerable接口,所以可以使用Linq、Lambda操作。

EF调用Skip之前必须调用OrderBy,不然会报错

Entity Framework(三)---FluentAPI和增删查改的更多相关文章

  1. Entity FrameWork 增删查改的本质

    之前的文章里面已经说了,EF的增删查改.那时候的修改,删除,只能是先查询出来要修改的数据,再修改,删除...现在来一个改进版的,增删查改. 1.Add static void Add() { //1. ...

  2. java:Hibernate框架1(环境搭建,Hibernate.cfg.xml中属性含义,Hibernate常用API对象,HibernteUitl,对象生命周期图,数据对象的三种状态,增删查改)

    1.环境搭建: 三个准备+7个步骤 准备1:新建项目并添加hibernate依赖的jar文件  准备2:在classpath下(src目录下)新建hibernate的配置文件:hibernate.cf ...

  3. MongoDB入门学习(三):MongoDB的增删查改

            对于我们这样的菜鸟来说,最重要的不是数据库的管理,也不是数据库的性能,更不是数据库的扩展,而是怎么用好这款数据库,也就是一个数据库提供的最核心的功能,增删查改.         由于M ...

  4. 6.在MVC中使用泛型仓储模式和依赖注入实现增删查改

    原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pat ...

  5. 4.在MVC中使用仓储模式进行增删查改

    原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-using-the-repository-pattern-in-mvc/ 系列目录: ...

  6. 5.在MVC中使用泛型仓储模式和工作单元来进行增删查改

    原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pat ...

  7. EF各版本增删查改及执行Sql语句

    自从我开始使用Visual Studio 也已经经历了好几个版本了,而且这中间EF等框架的改变也算是比较多的.本篇文章记录下各个版本EF执行Sql语句和直接进行增删查改操作的区别,方便自己随时切换版本 ...

  8. 在MVC中使用泛型仓储模式和工作单元来进行增删查改

    原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pat ...

  9. 在MVC中使用泛型仓储模式和依赖注入实现增删查改

    标签: 原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository ...

随机推荐

  1. MySQL中的if和case语句使用总结

    create table test( id int primary key auto_increment, name ), sex int ) ),(),(),() ,'男','女') from te ...

  2. 八数码(map版)

    八数码 map真是个奇技淫巧好东西 可以十分简单的实现hash,当然速度就不敢保证了 因为九位数不算很大,完全可以用int存下,所以便将八数码的图像转换成一个int型的数字 #include<i ...

  3. 微信小程序之setData原理以及几点关于小程序的吐槽

    小程序不方便之处: 1: 想做个获取列表中每个item所在的对应滚动条的高度在哪里,或者元素本身的高度也不好获取,极其不方便,网上看的别人做的滚动条相关的,都是写死或者已知的item高度,目前没找到正 ...

  4. spring-mybatis整合异常2

    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' ...

  5. 使用select2 宽度自适应

    加一个CSS属性:style = "width : 100%"

  6. IDEA的下载安装和激活

    1.下载网站http://www.jetbrains.com/ 2. 3. 4.注意要下载Ultimate版本 5.安装 下载完成后直接下一步,傻瓜式安装 6.激活,在图片位置输入激活码即可 !!!! ...

  7. pycharm快捷键一览

    编辑(Editing) Ctrl + Space 基本的代码完成(类.方法.属性)Ctrl + Alt + Space 快速导入任意类Ctrl + Shift + Enter 语句完成Ctrl + P ...

  8. 722. Remove Comments

    class Solution { public: vector<string> removeComments(vector<string>& source) { vec ...

  9. Linux 安装github并配置ssh

    首先,你得有个github帐号. 1.用apt-get install git的方式安装git test@er:/$ sudo add-apt-repository ppa:git-core/ppa ...

  10. WCF入门一[WCF概述]

    一.什么是WCF WCF是使用托管代码建立和运行面向服务(Service Oriented)应用程序的统一框架.它使得开发者能够建立一个跨平台的.安全.可信赖.事务性的解决方案,且能与已有系统兼容协作 ...