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. 51nod1485 字母排序

    [题解] 开26棵线段数,记录区间内每种字母的出现次数,修改的时候就用区间设置为一个数操作即可.同时也有平衡树做 #include<cstdio> #include<algorith ...

  2. POJ - 2007 极角排序(Java 实现)

    POJ 2007 将所有的点按逆时针输出 import java.io.*; import java.util.*; public class Main { static class Point im ...

  3. 关于Scrum 实战故事录播的感悟升级

    昨晚与几位自组织的伙伴进行了<Scrum 实战> 第17 章 <富有成效的每日站会>录播Sprint 不断的优化和精进的感悟. 首先,D兄给予了如下的建议: 1. 将段落 分得 ...

  4. Intellij IDEA神器居然还有这些小技巧---超级好用的

    Intellij IDEA神器居然还有这些小技巧----https://my.oschina.net/samgege/blog/1808622?p=8

  5. 食物链 2001年NOI全国竞赛

    时间限制: 3 s 空间限制: 64000 KB 题目等级 : 钻石 Diamond   题目描述 Description 动物王国中有三类动物 A,B,C,这三类动物的食物链构成了有趣的环形.A吃B ...

  6. Ubuntu 16.04安装7zip

    搜索时发现7zip有两个:p7zip,p7zip-full,p7zip-rar.研究发现: p7zip:包含7zr(最小的7zip归档工具),仅仅只能处理原生的7z格式. p7zip-full:包含7 ...

  7. NYOJ 16 矩形嵌套 (DAG上的DP)

    矩形嵌套 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描写叙述 有n个矩形,每个矩形能够用a,b来描写叙述.表示长和宽.矩形X(a,b)能够嵌套在矩形Y(c,d)中当且仅当 ...

  8. C++对象模型——继承体系下的对象构造(第五章)

    5.2 继承体系下的对象构造 当定义一个object例如以下: T object; 时,实际上会发生什么事情呢?假设T有一个constructor(不论是由user提供或是由编译器合成),它会被调用. ...

  9. 在项目开发中使用Git版本号控制工具以提高效率

    安装Git(linux centos平台) 源代码方式安装 1.装依赖 $ yum install curl-devel expat-devel gettext-devel openssl-devel ...

  10. springmvc的执行流程详解

    1.什么是MVC MVC是Model View Controller的缩写,它是一个设计模式 2.springmvc执行流程详细介绍 第一步:发起请求到前端控制器(DispatcherServlet) ...