如何从visual studio 2012查看实体框架连接字符串

时间:2014-12-12 07:45:35

标签: visual-studio-2012 entity-framework-6

这可能是一个非常简单的问题。但仍然在问,因为谷歌搜索后一段时间没有发现。所以我觉得最好在这里提问。当我定义到本地ms sql服务器的新连接时,我才能看到连接字符串。

enter image description here

稍后如何查看连接字符串。我知道它是在app.config的web.config中定义的。但是如果我想稍后编辑它,我认为编辑这种向导很容易/安全。提前致谢!

1 个答案:

答案 0 :(得分:0)

尝试打开服务器资源管理器,右键单击您的连接。在那里你可以配置它。之后,您仍然需要在App.config中替换相应的部分(可通过服务器资源管理器中的连接属性访问)。

或者使用构造函数调用base(connectionstring)构造函数扩展ef模型的partial类,并使用EntityConnectionStringBuilder类以编程方式组装connectionstring。那你甚至不需要App.Config / Web.Config条目。

示例:

using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Apps4KidsWeb.Persistence
{
    public partial class Apps4KidsEntities : DbContext
    {
        public Apps4KidsEntities(string connectionString):base(connectionString)
        {

        }
    }
}

组装连接的部分

using System;
using System.Collections.Generic;
using System.Data.Entity.Core.EntityClient;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Apps4KidsWeb.Persistence
{
    /// <summary>
    /// The class connection
    /// </summary>
    public class Connection
    {
        /// <summary>
        /// The connection string
        /// </summary>
        private static string connectionString = null;

        /// <summary>
        /// Gets the context.
        /// </summary>
        /// <returns></returns>
        public static Apps4KidsEntities GetContext()
        {
            Apps4KidsEntities result;

            if (connectionString != null)
            {
                return new Apps4KidsEntities(connectionString);
            }

            EntityConnectionStringBuilder ecsb = new EntityConnectionStringBuilder();

            SqlConnectionStringBuilder sqlcsb = new SqlConnectionStringBuilder();

            ecsb.Metadata = @"res://*/DataModel.csdl|
                            res://*/DataModel.ssdl|
                            res://*/DataModel.msl";

            ecsb.Provider = "System.Data.SqlClient";

            sqlcsb.InitialCatalog = "Apps4Kids";
            sqlcsb.DataSource = "localhost";
            sqlcsb.UserID = "sa";
            sqlcsb.Password = "123user!";

            ecsb.ProviderConnectionString = sqlcsb.ToString();

            result = new Apps4KidsEntities(ecsb.ConnectionString);
            return result;
        }
    }
}