• 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的强大机制还有待于读者动手实践和操作!

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



      

  • 相关阅读:
    poj-1069(三角形和六边形)(转)
    poj-1024(唯一最短路径)(转)
    poj-1022(四维模仿)(转)
    poj-1020(填蛋糕)(转)
    poj-1011
    poj-1010(转)
    poj-2312
    nyoj--幸运三角形
    nyoj--Divideing Jewels
    关于 APP在接入flutter之后在多任务下看不到AppName,只有APP图标,正常应该是APP图标+APP名称
  • 原文地址:https://www.cnblogs.com/xzpblog/p/5117937.html
Copyright © 2020-2023  润新知