EF框架有三种基本的方式:DB First,Model First,Code First。这里简单的说一下DB First,适合没有基础的同学照着做,学习基础的东西。

DatabaseFirst就是围绕数据库为中心的开发方式,使用这种模式我们必须要先设计和创建数据库,然后使用VS在已有数据库的基础上创建ADO.NET实体数据模型,之后就可以在编程的过程中使用EF访问和操作数据库里的数据了

1、先在数据库中创建几张表

2、在vs中创建一个类库项目,添加ado.net实体数据模型

点完成后,生成如下edmx

在DBFirst模式下,是不需要对edmx文件做修改的,让系统自动生成就好了

如果现在要对表结构或者列名进行修改,那么先在数据库上修改好了,然后在edmx中将相应的实体删除,选择从数据库更新模型 ,再将删除的表添加回来

同样的,添加表也是如此,这种情况下,即使原来数据库里面有数据也不会有什么影响的

3、在这个项目中做一个简单的增删改查,在class1类中添加如下代码

 public class Class1
{
modelEntities mo = null;
public Class1()
{
mo = new modelEntities();
}
public IList<Role> getRoleSet()
{
//使用Lambda表达式查询数据
IList<Role> RoleList = mo.Role.Where(o => o.RoleName != "").ToList();
return RoleList;
} public int AddRoleSet(Role r)
{
try
{
mo.Role.Add(r);
mo.SaveChanges();//对数据库的修改一定要添加这条语句
}
catch (Exception e)
{
return ;
}
return ;
} public int ModifyRoleSet(Role r)
{
IList<Role> rlist = mo.Role.Where(o => o.Id == r.Id).ToList();
Role rn = rlist.ElementAtOrDefault();
if (null != rn)
{
rn = r;
return mo.SaveChanges();
}
return ;
}
public bool DelRoleSet(Role r)
{
try
{
mo.Role.Remove(r);
mo.SaveChanges();
}
catch (Exception e)
{
return false;
}
return true; } }

创建一个控制台项目,将数据库链接字符串复制到配置文件中,然后直接调用class1中的方法就可以实现简单的增删改查了

4、与modelfirst相比,dbfirst在项目开发中更容易,至少,在数据库有数据的情况下,添加新的实体要更简单,也不用担心会因为误操作而导致数据丢失。

EF模式下,也可以直接使用sql语句来实现增删改查,这里就不讨论了

EF--DBFirst的更多相关文章

  1. 【EF框架】EF DBFirst 快速生成数据库实体类 Database1.tt

    现有如下需求,数据库表快速映射到数据库实体类 VS给出的两个选择都有问题,并不能实现,都是坑啊 EF .x DbContext 生成器 EF .x DbContext 生成器 测试结果如下 生成文件 ...

  2. .NetCore下使用EF DbFirst操作MySql

    新建.NetCore的控制台项目 使用Nuget安装Pomelo.entityframeworkcore.mysql 工程右键--->编辑.csproj文件,把以下内容写入到工程文件 <I ...

  3. EF DBFirst 实体生成命令

    dbfirst Entity生成命令行: Scaffold-DbContext "PORT=5435;DATABASE=DocumentDB;HOST=localhost;PASSWORD= ...

  4. [转]DbFirst数据验证

    转自:Data Validate 之 Data Annotation 什么是Data Annotation ? 如何使用 ? 自定义Validate Attribute EF  Db first中使用 ...

  5. EF TO MYSQL 无法查询中文的解决方法

    ef dbfirst 连接mysql 5.7版本 起初,连edmx都无法生成 报错 Entity : The value for column 'IsPrimaryKey' in table 'Tab ...

  6. Entity Framework入门教程(14)---DbFirst下的存储过程

    EF6中DbFirst模式下使用存储过程 我们已经知道EF可以将L2E或Entity SQL的查询语句自动转换成SQL命令,也可以根据实体的状态自动生成Insert/update/delete的Sql ...

  7. 9.翻译:EF基础系列---使用EF开发的方式有哪些?

    原文链接:http://www.entityframeworktutorial.net/choosing-development-approach-with-entity-framework.aspx ...

  8. EF t4模板将实体与DBContext分离

    在用EF DBFirst时,实体类是从数据库自动生成的,与DBContext放在同一个项目中.这样其他项目想引用实体,就会将数据库操作类暴露出来.所以,我们需要将实体分离. 新建项目EFAccess, ...

  9. .NET Core、EF、Dapper、MySQL 多种方式实现数据库操作(动态注册实体类)

    目录 前言 一.技术选型 二.遇到的坑 2.1..NET Core 下 EF 的问题 2.2.数据库实体类的注册 切记坑 前言 最近在学习.研究 .NET Core 方面的知识,动手搭建了一些小的 D ...

  10. Data Validate 之 Data Annotation

    什么是Data Annotation ? 如何使用 ? 自定义Validate Attribute EF  Db first中使用Data Annotation asp.net MVC中使用Data ...

随机推荐

  1. js之字典操作

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. kata练习题

    This time no story, no theory. The examples below show you how to write function accum: Examples: ac ...

  3. sectional data interpolation in Tecplot

    $!Varset |NumLoop|= $!Loop |NumLoop| $!Varset |num|=(|Loop|*+) $!RotateData ZoneList = [] Angle = |n ...

  4. String类的判断功能

    /* * Object:是类层级结构中的根类,所有的类都直接或间接的继承自该类. * 如果一个方法的形式参数是Object,那么这里我们就可以传递它的任意的子类对象. * * String类的判断功能 ...

  5. Linux下汇编语言学习笔记75 ---

    这是17年暑假学习Linux汇编语言的笔记记录,参考书目为清华大学出版社 Jeff Duntemann著 梁晓辉译<汇编语言基于Linux环境>的书,喜欢看原版书的同学可以看<Ass ...

  6. 不折移动web不腾--开启我的个人Mac之旅

    背景,非常久非常久曾经(听过)Linux,瞎玩 Mac mini,而今Linux下开发技能半身不遂,处于放任状态.明明就知道随着时间流逝会越陌生的东西越不想去抓住最后的余温,不知道这算不算放弃,反正迟 ...

  7. 【python】蛋疼的中文乱码解决方案

    转自: http://yooooo.us/2013/python-encoding-decoding?variant=zh-cn

  8. 数学之路-python计算实战(17)-机器视觉-滤波去噪(中值滤波)

    Blurs an image using the median filter. C++: void medianBlur(InputArray src, OutputArray dst, int ks ...

  9. Java 实现简答的单链表的功能

    作者:林子木  博客网址:http://blog.csdn.net/wolinxuebin 參考网址:http://blog.csdn.net/sunsaigang/article/details/5 ...

  10. Android开发:setAlpha()方法

    paint.setAlpha() 即透明度.其取值范围是0---255,数值越小,越透明,颜色上表现越淡. 实际上当设成10以下就会有透明的效果了.