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. java8新特性 日期

    1. LocalDateTime 2. Instant package com.atguigu.java8; import java.time.DayOfWeek; import java.time. ...

  2. ACE in Action

    ACE in Action https://cdn.xgqfrms.xyz/web-ide/index.html TinyMCE https://panjiachen.github.io/vue-el ...

  3. [luoguP1196] 银河英雄传说(并查集)

    传送门 记录 up[x] 表示 x 上方有多少个 all[x] 表示当前连通的有多少个 find 的时候 和 合并的时候 更新一下即可 ——代码 #include <cstdio> #in ...

  4. [luoguP1130] 红牌(DP)

    传送门 幼儿园DP. ——代码 #include <cstdio> #include <iostream> ; << ); int a[MAXN][MAXN], f ...

  5. 四则运算结对编程(GUI)

    四则运算GUI coding地址:https://git.dev.tencent.com/qyj814/GUI.git 结对伙伴:李梦宇 一.题目要求 定制出题要求.每次出题时用户都可以在界面上定制如 ...

  6. Ubuntu查看和写入系统日志

    一.背景 Linux将大量事件记录到磁盘上,它们大部分以纯文本形式存储在/var/log目录中.大多数日志条目通过系统日志守护进程syslogd,并被写入系统日志. Ubuntu包括以图形方式或从命令 ...

  7. Spark之安装和使用

    Scala安装 Spark使用Scala开发,安装的Scala版本必须和Spark使用的版本一致,否则使用Scala编写的Spark任务会有兼容性问题 可以到Spark官网查看确定Scala版本,或者 ...

  8. webpack打包的基础原理-打包后的文件解读

    1.概念 本质上,webpack 基于node平台,利用 node 的各种api来实现 javascript 应用程序的一个静态模块的打包工具. 在打包过程中,构建依赖关系,并且实现模块引用预处理,以 ...

  9. FAST_START_MTTR_TARGET

    Release 9i introduced a new parameter, FAST_START_MTTR_TARGET, that makes controlling instance recov ...

  10. C++中const引用的是对象的时候只能调用该对象的f()const方法

    const引用的作用: 1. 避免不必要的复制.  2. 限制不能修改对象. const 引用的是对象时只能访问该对象的const 函数  例: class A { public: void cons ...