欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

EF之DBFirst数据库先行

程序员文章站 2024-02-14 15:35:24
...

在上篇文章中,宏观的了解了EF的概念和类型,下面就来讲讲关于DBFirst(数据库先行)的详细步骤吧。 DatabaseFirst就是围绕数据库为中心的开发方式,使用这种模式我们必须要先设计和创建数据库,然后使用VS在已有数据库的基础上创建ADO.NET实体数据模型,之

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

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

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


EF之DBFirst数据库先行


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

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

EF之DBFirst数据库先行

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


EF之DBFirst数据库先行


右键添加,选择新建项:



EF之DBFirst数据库先行


选择ADO实体模型:


EF之DBFirst数据库先行


选择模型类型:


EF之DBFirst数据库先行


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


EF之DBFirst数据库先行


如下图所示:


EF之DBFirst数据库先行


测试成功后,点击确定:


EF之DBFirst数据库先行


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


EF之DBFirst数据库先行


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


EF之DBFirst数据库先行


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


EF之DBFirst数据库先行

编写代码:

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



    

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


EF之DBFirst数据库先行


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

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