Entity Framework(三)---FluentAPI和增删查改
一、FluentAPI:
1、基本配置:
- namespace ConsoleApp14.ModelConfig
- {
- public class PersonConfig: EntityTypeConfiguration<Person>
- {
- //继承自EntityTypeConfiguration,并将Person传进来
- public PersonConfig()
- {
- this.ToTable("T_Persons");
- }
- }
- }
- public class TestDbContext:DbContext
- {
- public TestDbContext():base("name=connstr")//name=connstr 表示使用连接字符串中名字为connstr的数据库
- {
- }
- public DbSet<Person> Persons { get; set; }
- protected override void OnModelCreating(DbModelBuilder modelBuilder)
- {
- base.OnModelCreating(modelBuilder);
- //用法一:从本程序集中加载所有继承自EntityTypeConfiguration类的配置
- modelBuilder.Configurations.AddFromAssembly(
- Assembly.GetExecutingAssembly());
- //用法二: 从指定的程序集中加载所有的继承自EntityTypeConfiguration类的配置
- // modelBuilder.Configurations.AddFromAssembly(
- // Assembly.Load("ModelConfig"));
- //用法三:
- // modelBuilder.Entity<Person>().ToTable("T_Person");
- //用法四:
- // modelBuilder.Configurations.Add(new PersonConfig());
- }
- }
二、EF增删查改:
获取Dbset除了可以ctx.Persons之外,还可以ctx.Set<Person>()
1、增加:ctx.Persons.Add(p1) ; ctx.SaveChange();
2、删除:先查询出要删除的数据,然后Remove。这种方式问题最少,虽然性能低,但是删除操作一般不频繁,不用考虑性能。
- using (TestDbContext ctx = new TestDbContext())
- {
- var ps= ctx.Persons.Where(p => p.Id ==).SingleOrDefault();
- if(ps==null)
- {
- Console.WriteLine("没有ID为3的人");
- }
- else
- {
- ctx.Persons.Remove(ps); //单个删除
- }
- }
- var ps= ctx.Persons.Where(p => p.Id >);
- ctx.Persons.RemoveRange(ps); //批量删除
3、改:先查询出来,然后修改数据,最后SaveChange()
4、查询:因为Dbset实现了IQueryable 接口,而IQueryable 继承了IEnumerable接口,所以可以使用Linq、Lambda操作。
EF调用Skip之前必须调用OrderBy,不然会报错
Entity Framework(三)---FluentAPI和增删查改的更多相关文章
- Entity FrameWork 增删查改的本质
之前的文章里面已经说了,EF的增删查改.那时候的修改,删除,只能是先查询出来要修改的数据,再修改,删除...现在来一个改进版的,增删查改. 1.Add static void Add() { //1. ...
- java:Hibernate框架1(环境搭建,Hibernate.cfg.xml中属性含义,Hibernate常用API对象,HibernteUitl,对象生命周期图,数据对象的三种状态,增删查改)
1.环境搭建: 三个准备+7个步骤 准备1:新建项目并添加hibernate依赖的jar文件 准备2:在classpath下(src目录下)新建hibernate的配置文件:hibernate.cf ...
- MongoDB入门学习(三):MongoDB的增删查改
对于我们这样的菜鸟来说,最重要的不是数据库的管理,也不是数据库的性能,更不是数据库的扩展,而是怎么用好这款数据库,也就是一个数据库提供的最核心的功能,增删查改. 由于M ...
- 6.在MVC中使用泛型仓储模式和依赖注入实现增删查改
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pat ...
- 4.在MVC中使用仓储模式进行增删查改
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-using-the-repository-pattern-in-mvc/ 系列目录: ...
- 5.在MVC中使用泛型仓储模式和工作单元来进行增删查改
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pat ...
- EF各版本增删查改及执行Sql语句
自从我开始使用Visual Studio 也已经经历了好几个版本了,而且这中间EF等框架的改变也算是比较多的.本篇文章记录下各个版本EF执行Sql语句和直接进行增删查改操作的区别,方便自己随时切换版本 ...
- 在MVC中使用泛型仓储模式和工作单元来进行增删查改
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pat ...
- 在MVC中使用泛型仓储模式和依赖注入实现增删查改
标签: 原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository ...
随机推荐
- MySQL中的if和case语句使用总结
create table test( id int primary key auto_increment, name ), sex int ) ),(),(),() ,'男','女') from te ...
- 八数码(map版)
八数码 map真是个奇技淫巧好东西 可以十分简单的实现hash,当然速度就不敢保证了 因为九位数不算很大,完全可以用int存下,所以便将八数码的图像转换成一个int型的数字 #include<i ...
- 微信小程序之setData原理以及几点关于小程序的吐槽
小程序不方便之处: 1: 想做个获取列表中每个item所在的对应滚动条的高度在哪里,或者元素本身的高度也不好获取,极其不方便,网上看的别人做的滚动条相关的,都是写死或者已知的item高度,目前没找到正 ...
- spring-mybatis整合异常2
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' ...
- 使用select2 宽度自适应
加一个CSS属性:style = "width : 100%"
- IDEA的下载安装和激活
1.下载网站http://www.jetbrains.com/ 2. 3. 4.注意要下载Ultimate版本 5.安装 下载完成后直接下一步,傻瓜式安装 6.激活,在图片位置输入激活码即可 !!!! ...
- pycharm快捷键一览
编辑(Editing) Ctrl + Space 基本的代码完成(类.方法.属性)Ctrl + Alt + Space 快速导入任意类Ctrl + Shift + Enter 语句完成Ctrl + P ...
- 722. Remove Comments
class Solution { public: vector<string> removeComments(vector<string>& source) { vec ...
- Linux 安装github并配置ssh
首先,你得有个github帐号. 1.用apt-get install git的方式安装git test@er:/$ sudo add-apt-repository ppa:git-core/ppa ...
- WCF入门一[WCF概述]
一.什么是WCF WCF是使用托管代码建立和运行面向服务(Service Oriented)应用程序的统一框架.它使得开发者能够建立一个跨平台的.安全.可信赖.事务性的解决方案,且能与已有系统兼容协作 ...