EF之DBFirst数据库先行

   在上篇文章中,宏观的了解了EF的概念和类型,下面就来讲讲关于DBFirst(数据库先行)的详细步骤吧。

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

因为是数据库先行就先来看看高校云平台的数据库吧:

这张表是我做新生入学配置学号的一张表,下面我们来建立一个简单的控制台程序:

打开VS2012,选择控制台程序:

然后在项目中添加ADO实体模型:

右键添加,选择新建项:

选择ADO实体模型:

选择模型类型:

如果是第一次新建EF模型,请看下面的步骤:

如下图所示:

测试成功后,点击确定:

这里面包括表,视图等。因为我想建立一张表(也可以建立多张表)

点击完成,这就是我们想要的效果图:

最后我就通过操作实体来同步数据库中的数据,如图这是我操作前数据库表中的数据内容:

编写代码:

<pre name="code" class="csharp">using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DBFirst
{
    class Program
    {
        static void Main(string[] args)
        {
            FreshEntities dbContext = new FreshEntities();

            FreshNumberConfigEntity freshNumber = new FreshNumberConfigEntity();
            //必须给所有属性赋值
            freshNumber.Name = "徐志鹏";
            freshNumber.Id = 1;
            freshNumber.Sort = 3;
            freshNumber.IsUse = 0;
            freshNumber.Length = 3;
            freshNumber.TimeSpan = DateTime.Now;
            freshNumber.IsDelete = 0;
            //实体的跟踪然后修改实体状态

            dbContext.Entry<FreshNumberConfigEntity>(freshNumber).State = System.Data.EntityState.Modified;
            ////查询出来的实体:默认就是被跟踪状态
            //var item = dbContext.FreshNumberConfigEntity.FirstOrDefault();
            //item.Name = "学院码";//只要改属性,那么就会自动将此实体的状态改为modify
            dbContext.SaveChanges();
        }
    }
}

编译执行,再看看数据库中的数据:

上面演示的只是修改的一个小功能,EF的强大机制还有待于读者动手实践和操作!

这样我们就实现了通过对实体的增删改查实现了实体和数据库的同步,是不是有一种高大上的感觉呢?

时间: 2024-08-26 13:00:23

EF之DBFirst数据库先行的相关文章

2_MVC+EF+Autofac(dbfirst)轻型项目框架_用户权限验证

前言 接上面两篇 0_MVC+EF+Autofac(dbfirst)轻型项目框架_基本框架 与 1_MVC+EF+Autofac(dbfirst)轻型项目框架_core层(以登陆为例) .在第一篇中介绍了此架构的基本分层,在第二篇中,以登陆功能为例,介绍了项目的代码结构.在本篇中将通过过滤器实现用户权限验证功能. 同样,文中有问题的地方欢迎批评指正!谢谢! 开发背景  在一个常规系统中权限验证是不可缺的,在较简单的系统中,用户只会被简单归为登陆用户和游客,而在较为复杂的系统中,除了判断用户是否登

1_MVC+EF+Autofac(dbfirst)轻型项目框架_core层(以登陆为例)

前言 在上一篇0_MVC+EF+Autofac(dbfirst)轻型项目框架_基本框架中,我已经介绍了这个轻型框架的层次结构,在下面的这篇文章中,我将以教师登陆功能为例,具体来扩充下我的core层的代码. 在这之前,我想先补充讨论下是否有必要添加server层,因为看过不少别人的框架都有这一层.首先,server层在不同地方有着不同的解释.有个常听的词叫MVSC,这里所指的S虽然也是server的意思,但实现的功能更有点类似于我框架中的core,主要存放也是业务逻辑.但我看了别人框架上的serv

EF Code First数据库映射规则及配置

EF Code First数据库映射规则主要包括以下方面: 1.表名及所有者映射 Data Annotation: 指定表名 1 using System.ComponentModel.DataAnnotations;2 3 [Table("Product")]4 public class Product指定表名及用户 using System.ComponentModel.DataAnnotations;[Table("Product", Schema = &qu

EF 连接MySQL 数据库 ?保存中文数据后乱码问题

EF 连接MySQL 数据库  保存中文数据后乱码问题 采用Code First 生成的数据库,MySQL数据库中,生成的表的编码格式为***** 发现这个问题后,全部手动改成UTF8(图是另一个表的图),否则插入的数据,就会全部变成乱码 修改后可以正常插入数据(注意!!这里是直接用SQL 代码插入的数据) 之后用代码界面保存数据,如图 但数据中却变成乱码: 修改方法: 在连接MySQL的连接字符串中,加入配置文件信息:Character Set=utf8  来自为知笔记(Wiz)

MVC + EF 框架 对数据库做增删改查

这几天一直在看MVC 开发模式,其中借助EF框架对数据库进行 增删改查操作 现在就小小的总结一下吧 在使用EF操作数据库时,会首先添加 ADO.NET数据模型,这时,会为我们添加一个数据上下文类,使用这个类的对象可以对数据库做任何操作.所以在使用EF操作数据库之前 需要创建数据上下文对象. MyDatabaseEntities mde = new MyDatabaseEntities(); 1.使用EF 对数据库 做增加操作 1.1 创建一个需要被操作数据表的对象(一般来说 ,一张表就是一个实体

EF初始化mysql数据库codefirst

EF使用Code First修改生成数据库表名的方法 1. 重写OnModelCreating,去掉表名复数 System.Data.Entity.ModelConfiguration.Conventions; public class MovieDBContext : DbContext     {         public DbSet<Movie> Movies { get; set; }         protected override void OnModelCreating(

EF Codefirst生成数据库的三种方式

1.写在前头 不是什么高大上的东西,也不是完全原创的,大多是自己学习时去网上查的各种资料.只是发现学东西还是要写点东西,不然前边写着后边忘了,花的时间都浪费了,写写增加记忆吧.如果是有人刚开始学看到这个相信会有帮助的. 2.开搞 前几天写了篇小文章搞了下EF生成数据库时获取连接字符串的方式,发布时不小心勾选了发布到首页,秒秒钟就被管理员给撤销了( ⊙ o ⊙ ),确实太低端了,博客园锅锅撤销也是可以理解的,废话不多说,今天继续搞一搞获取完连接字符串后EF怎么生成数据库呢,有哪些方式呢? 第一种:

完善实体类,由EF自动生成数据库过程中的一些问题

①.配置两表间的关系时WillCascadeOnDelete(false)取消级联删除 public AdminLogConfig() { this.ToTable("T_AdminLogs"); this.Property(a => a.Msg).IsRequired(); this.HasRequired(a => a.AdminUser).WithMany().HasForeignKey(a => a.AdminUserId).WillCascadeOnDele

基于 ASP.NET Core 2.0 WebAPI 后台框架搭建(4) - EF Core CodeFirst 数据库创建

概述 在 基于 ASP.NET Core 2.0 WebAPI 后台框架搭建(2) - EF Core (MySQL) CodeFirst 数据库迁移与依赖注入 一文中,我们介绍如何快速以CodeFirst快速搭建数据库,这一章,我们来完善一下创建数据库中可以添加的验证与约束. 微软爸爸官方文档:Entity Framework Core 数据库操作 (1) 数据库迁移  add-migration [任一名称,须唯一] (2) 更新数据库  update-database (3) 删除数据库迁