zoukankan      html  css  js  c++  java
  • 使用代码的方式给EntityFramework edmx 创建连接字符串

    在构建上下文的时候动态生成连接字符串:

     

     /// <summary>
            /// 从配置生成连接
            /// </summary>
            private static readonly string _connStr = GetConnStringFromAppSetting();
    
            public context()
                : base(_connStr)//"name=context"
            {
             
            }
        
            protected override void OnModelCreating(DbModelBuilder modelBuilder)
            {
                throw new UnintentionalCodeFirstException();
            }
    
            private static string GetConnStringFromAppSetting()
            {
                // Specify the provider name, server and database.
                string providerName ="System.Data.SqlClient"; 
                string providerString = global::System.Configuration.ConfigurationManager.AppSettings["SQLConnectionString"];//sqlBuilder.ToString();
    
                // Initialize the EntityConnectionStringBuilder.
                EntityConnectionStringBuilder entityBuilder =
                    new EntityConnectionStringBuilder();
    
                //Set the provider name.
                entityBuilder.Provider = providerName;
    
                // Set the provider-specific connection string.
                entityBuilder.ProviderConnectionString = providerString;
    
                // Set the Metadata location.
                entityBuilder.Metadata = @"res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl";
    
                var connString= entityBuilder.ToString();
                return connString;
            }

     

    How to: Build an EntityConnection Connection String

    This topic provides an example of how to build an EntityConnection.

    To run the code in this example

    1. Add the AdventureWorks Sales Model to your project and configure your project to use the Entity Framework. For more information, see How to: Use the Entity Data Model Wizard.

    2. In the code page for your application, add the following using statements (Imports in Visual Basic):

      C#
      using System;
      using System.Collections.Generic;
      using System.Collections;
      using System.Data.Common;
      using System.Data;
      using System.IO;
      using System.Data.SqlClient;
      using System.Data.EntityClient;
      using System.Data.Metadata.Edm;
      

    Example

    The following example initializes the System.Data.SqlClient.SqlConnectionStringBuilder for the underlying provider, then initializes the System.Data.EntityClient.EntityConnectionStringBuilderobject and passes this object to the constructor of the EntityConnection.

    C#
    
    // Specify the provider name, server and database.
    string providerName = "System.Data.SqlClient";
    string serverName = ".";
    string databaseName = "AdventureWorks";
    
    // Initialize the connection string builder for the
    // underlying provider.
    SqlConnectionStringBuilder sqlBuilder =
        new SqlConnectionStringBuilder();
    
    // Set the properties for the data source.
    sqlBuilder.DataSource = serverName;
    sqlBuilder.InitialCatalog = databaseName;
    sqlBuilder.IntegratedSecurity = true;
    
    // Build the SqlConnection connection string.
    string providerString = sqlBuilder.ToString();
    
    // Initialize the EntityConnectionStringBuilder.
    EntityConnectionStringBuilder entityBuilder =
        new EntityConnectionStringBuilder();
    
    //Set the provider name.
    entityBuilder.Provider = providerName;
    
    // Set the provider-specific connection string.
    entityBuilder.ProviderConnectionString = providerString;
    
    // Set the Metadata location.
    entityBuilder.Metadata = @"res://*/AdventureWorksModel.csdl|
                                res://*/AdventureWorksModel.ssdl|
                                res://*/AdventureWorksModel.msl";
    Console.WriteLine(entityBuilder.ToString());
    
    using (EntityConnection conn =
        new EntityConnection(entityBuilder.ToString()))
    {
        conn.Open();
        Console.WriteLine("Just testing the connection.");
        conn.Close();
    }
    

    See Also

    How to: Use EntityConnection with an Object Context
    EntityClient Provider for the Entity Framework

    Note

  • 相关阅读:
    策略模式c++【转】
    [转]C++设计模式:Builder模式
    c/c++ 笔试面试题
    堆排序
    冒泡,快速,和堆排序
    C++继承
    【转】林建:计算机专业学习浅谈
    (centos)linux下访问双系统windows7文件系统
    sprintf() in c
    System call in linux by C
  • 原文地址:https://www.cnblogs.com/micro-chen/p/8954193.html
Copyright © 2011-2022 走看看