zoukankan      html  css  js  c++  java
  • 【译】第6节---数据库初始化

    原文:http://www.entityframeworktutorial.net/code-first/database-initialization-in-code-first.aspx

    本节,我们将学习Code First在初始化数据库时如何决定数据库名称和服务器。

    下图显示了一个数据库初始化工作流程,基于从DbContext派生的上下文类的基础构造函数中传递的参数:

     

    根据上图,上下文类的基础构造函数可以具有以下参数:

    1. 无参数
    2. 数据库名称
    3. 连接字符串名称

    无参数

    如果不在上下文类的基本构造函数中指定参数,那么在本地SQLEXPRESS服务器中创建一个名称与{Namespace} {Context class name}匹配的数据库。

    例如,Code First将为以下上下文类创建一个名为SchoolDataLayer.Context的数据库:

    namespace SchoolDataLayer
    {
        public class Context: DbContext 
        {
            public Context(): base()
            {
                
            }
        }
    }

    数据库名称

    你还可以将数据库名称指定为上下文类的基本构造函数中的参数。 如果指定数据库名称参数,则Code First将使用本地SQLEXPRESS数据库服务器中的基础构造函数中指定的名称创建数据库。

    例如,Code First将为以下上下文类创建一个名为MySchoolDB的数据库:

    namespace SchoolDataLayer
    {
        public class Context: DbContext 
        {
            public Context(): base("MySchoolDB") 
            {
                       
            }
        }
    }

    连接字符串名称

    你还可以在app.config或web.config中定义连接字符串,并在上下文类的基础构造函数中指定以“name =”开头的连接字符串名称。

    考虑下面的例子,我们在基础构造函数中传递name = SchoolDBConnectionString参数:

    namespace SchoolDataLayer
    {
        public class Context: DbContext 
        {
            public SchoolDBContext() : base("name=SchoolDBConnectionString") 
            {
            }
        }
    }

    App.config:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <connectionStrings>
          <add name="SchoolDBConnectionString" connectionString="Data Source=.;Initial Catalog=SchoolDB-ByConnectionString;Integrated Security=true" providerName="System.Data.SqlClient"/>
        </connectionStrings>
    </configuration>

    在上述上下文类中,我们指定一个连接字符串名称作为参数。 请注意,连接字符串名称应以“name =”开头,否则会将其视为数据库名称。

    app.config中的连接字符串中的数据库名称是SchoolDB-ByConnectionString。 Code-First将创建一个新的SchoolDB-ByConnectionString数据库,或者在本地SQL Server上使用现有的SchoolDB-ByConnectionString数据库。

    确保在连接字符串中包含providerName =“System.Data.SqlClient”。

    综上所述,Code-First使用基础构造函数初始化数据库。

  • 相关阅读:
    QT下载速度慢的解决方法
    第七章 多态
    第六章 重复运用class
    第五章 隐藏实现细节
    代码改变世界
    第四章 初始化和清理
    第三章 控制程序流程
    module.exports和exports
    如何与外部源交互
    实现POST服务器
  • 原文地址:https://www.cnblogs.com/talentzemin/p/7111932.html
Copyright © 2011-2022 走看看