zoukankan      html  css  js  c++  java
  • ORM系列之二:EF(5) Model First

      前面我们已经介绍过EF中Code First开发模式,简而言之,就是不管三七二十一直接写代码,不过对于很多开发人员来说,可能并不习惯这样来开发,并且安装标准的开发流程,应该是先建模再进行编码,当然EF也是支持这样做的,那我们今天就简单介绍一些现有模型的开发模式——Model First。

      

      具体步骤如下:

      1. 新建一个控制台程序,叫做“EF.ModelFirstSample”。

      

      2.安装EF,因为我们之前已经安装了EF,所以打开NuGet包管理器界面直接安装到新的工程中,如果没有安装,要自己去安装。

      

      3.创建模型

       新增“现有项”,选中“数据”下的“ADO.NET实体数据模型”。

      

      从打开的窗体中,选择“空EF设计器模型”。

      

      完成之后,我们就可以看到EF的模型设计器面板,右键,新增实体,输入如下信息:

      

      选中Blog实体,右键添加两个属性,分别为Name和Url,完成之后如下:

      

      参照上述步骤,新增Post实体,并且添加Title和Content属性,再在设计面板上右键为Blog和Post实体增加关联关系,如下:

      

     

      4.生成数据库

      至此,我们的简单模型已经设计好,现在可以在设计面板右键,点击“根据模型生成数据库”

      

      在弹出的窗体中配置好连接的数据库

      

      一切顺利的话,点击“下一步”,此时就可以看到建表语句了,如下图:

      

      点击完成之后,我们可以在vs新打开的窗体中可以看到最终生成SQL语句,这个时候只是生成了SQL语句,但是并没有真正执行,还需要手动点击一下执行:

      

      OK,我们的模型已经成功创建。

      

      5.读写测试

      我们已经有了模型,并且基于此模型已经生成好了数据库,现在可以根据这个模型进行读写操作。

      下面代码,主要是向Blog表中插入一条数据,并且读取出来,具体代码实现如下:

      

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace EF.ModelFirstSample
    {
        class Program
        {
            static void Main(string[] args)
            {
                using (var db = new BlogModelContainer())
                {                
                    var blog = new Blog { Name = "test Name",Url="testUrl" };
                    db.BlogSets.Add(blog);
                    db.SaveChanges();
    
                    var query = from b in db.BlogSets
                                orderby b.Name
                                select b;
                    
                    foreach (var item in query)
                    {
                        Console.WriteLine(item.Name);
                    }
                    
                    Console.ReadKey();
                }
            }
        }
    }
    View Code

      运行之后我们去数据库查看,可以发现已经成功添加了一条记录,并且成功读取。

      

      6.处理模型改变

      Model First模式下的模型改变之后,只需要在设计面板中右键点击“根据模型生成数据库”,和之前生成数据库一样,生成脚本之后要手动执行。

      

      如上是为Blog增加一个Author属性,更新的数据库Blog中可以看到多出一个Author字段。

      

  • 相关阅读:
    [Redux-Observable && Unit Testing] Use tests to verify updates to the Redux store (rxjs scheduler)
    [Redux-Observable && Unit Testing] Mocking an ajax request when testing epics
    [Redux-Observable && Unit testing] Testing the output of epics
    [React] Create a queue of Ajax requests with redux-observable and group the results.
    [React] Compound Component (React.Children.map & React.cloneElement)
    [Express] Upload Files with Express
    [Python] List & Object spread in Python
    [Angular & Unit Testing] Testing a RouterOutlet component
    [Angular & Unit Testing] TestBed.get vs Injector
    各司其职的标签
  • 原文地址:https://www.cnblogs.com/qianxingdewoniu/p/6139155.html
Copyright © 2011-2022 走看看