EF框架有三种基本的方式:DB First,Model First,Code First。练习一下DB First,

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

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

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

ado.net实体数据模型 必须在安装EF包之后才会显示。

3. 安装EF框架

打开NUGet程序包后搜索EF ,点击下载安装即可,我们这里就安装最新版就好

3.添加新项“ADO.NET实体数据模型”

点击完成 后生成对应数据库里的EDM

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

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

比如删除 或者修改字段名称EnterpriseID

                          

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

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

class Class1
    {
        EFDBEntities mo = null;
        public Class1()
        {
            mo = new EFDBEntities();
        }
        public IList<SysUser> getUserName()
        {
            //使用Lambda表达式查询数据
            IList<SysUser> RoleList = mo.SysUser.Where(o => o.UserState != 0).ToList();
            return RoleList;
        }

public int AddSysUserSet(SysUser r)
        {
            try
            {
                mo.SysUser.Add(r);
                mo.SaveChanges();//对数据库的修改一定要添加这条语句
            }
            catch (Exception e)
            {
                return 0;
            }
            return 1;
        }

public int ModifySysUserSet(SysUser r)
        {
            IList<SysUser> rlist = mo.SysUser.Where(o => o.UserID == r.UserID).ToList();
            SysUser rn = rlist.ElementAtOrDefault(0);
            if (null != rn)
            {
                rn = r;
                return mo.SaveChanges();
            }
            return 0;
        }
        public bool DelSysUserSet(SysUser r)
        {
            try
            {
                mo.SysUser.Remove(r);
                mo.SaveChanges();
            }
            catch (Exception e)
            {
                return false;
            }
            return true;

}
    }

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

与modelfirst相比,dbfirst在项目开发中更容易,至少,在数据库有数据的情况下,添加新的实体要更简单,也不用担心会因为误操作而导致数据丢失。当然前提条件就是要提前在数据库中将表结构设计和创建好。

C#EF DBFirst学习相关推荐

  1. 使用python脚本登陆ef英语学习中心

    背景: 当年刚毕业助学贷款还没还清的时候就被一个漂亮MM忽悠的学习了一年的ef英语 花了6K+大洋,当时因为自己懒惰一年没学到啥东西(现在想想就想骂自己).后来又想 学了,账号过期了.再后来发现可通过 ...

  2. EF Core学习笔记:反向工程 + 底层操作数据库原理

    EF core三种建模模式:DB first / Model first / Code first 反向工程:根据数据库表来反向生成实体类 应用场景:通过旧的数据库生成新的项目 命令: Scaffol ...

  3. EF框架学习(5)---EF中的在线和离线场景

    EF中的持久性场景 使用EF实现实体持久化(保存)到数据库有两种情况:在线场景和离线场景. 1.在线场景 在线场景中,context是同一个上下文实例(从DbContext派生),检索和保存实体都通过 ...

  4. efcore mysql坑,.net core 2.1 使用ef DBfirst 生成 实体映射遇到的坑 (Pomelo.EntityFrameworkCore.MySql 篇)...

    core 2.1 发行不久,正好要把一个已存在的mysql db的项目 迁移至 core 2.1, 网上搜了很多帖子,基本两个工具类,一个是Pomelo.EntityFrameworkCore.MyS ...

  5. EF + EFCore 学习

    EFCore 新增 EF.Function 在EFCore 2.0开始,在使用时增加了 EF.Function方法,此方法对应数据库中的函数,在.Net5中会大次推广 比较通用的是 Like方法: 例 ...

  6. .net之EF框架学习

    1.EF(Entity Framework) 实体框架EF是ADO.NET中的一组支持开发面向数据的软件应用程序的技术,是微软的一个ORM框架. 2.什么是ORM? ORM指的是面向对象的对象模型和关 ...

  7. EF Core学习笔记:关于主键 对IGuidGenerator的理解

    提要:公司项目使用Guid   聚集索引:聚集索引是索引结构和数据一起存放的索引.类似于字典的正文,当我们根据拼音直接就能找到那个字. 非聚集索引:非聚集索引是索引结构和数据分开存放的索引.类似于根据 ...

  8. EF CodeFirst 学习 1 - 用fluent API设置元数据,

    用 Fluent API 设置元数据 http://agilenet.wordpress.com/2011/04/11/entity-framework-4-1-rc-with-an-existing ...

  9. EF中的DBFirst实例(上)

    在我们开始学习之前,回忆一下,我们之前需要操作数据库表中的数据应该如何做?我们是不是得定义表对应的实体类,当开发人员操作实体类后想要把这个变化更新到数据库中是不是还得编写Sql语句.如果项目不大,这也 ...

最新文章

  1. 三层学习------实践篇
  2. 分类决策树 回归决策树_决策树分类器背后的数学
  3. vue resource then
  4. 前端学习(2518):生命周期钩子
  5. 使用Anaconda3安装pytorch、paddle环境并在pycharm里面进行环境测试
  6. nodejs 代替python_Python/NodeJS坑记
  7. 可怕!微软AI:一张面部照片一段音频,完美生成头像演讲视频
  8. 总结过去10年的程序员生涯_给程序员的一些总结性忠告
  9. ExtJS视频学习笔记
  10. 运动会管理系统(JAVA,JSP,SERVLET,SQLSERVER)
  11. react上传文件转base64
  12. MockServer 服务框架
  13. 手机怎么修改浏览器的html,手机设置默认浏览器
  14. 华为手机的拨号键有大用处,不仅能用来打电话,还有4个隐藏功能
  15. 作业二:wireshark抓包与ping操作
  16. yolo+ocr集装箱字符识别(pytorch版本)
  17. trove mysql 镜像_openstack trove 数据库镜像构建列表
  18. oracle 提示ORA-00942: 表或视图不存在,但是plsql查询有数据,解决办法
  19. python 模拟器多开任务并行
  20. 视频剪裁尺寸和裁剪时间

热门文章

  1. C语言 - 运输公司对用户计算运输费用。路程(s km)越远,每吨·千米运费越低。(用switch实现)
  2. windowsmobile 综合 注册表修改 CSDN 推荐tag:mp3 storage gprs 注册表 文件
  3. showModalDialog打开窗口时不跳入新页面设置
  4. python可视化窗口库_Python可视化工具介绍——找到合适的库
  5. 试玩系列 | 真香!大疆TT无人机编程初体验,教你对它为所欲为!
  6. 浅谈深度链接除了跳转还能做些什么?—MobLink
  7. mysql错误:Subquery returns more than 1 row
  8. 2019智能手表推荐_2019智能手表推荐排行榜前三名top!
  9. windows 蓝屏 BCCode代码解释
  10. SCI和SCIE, EI, ISTP 等数据库