【问题标题】:Is it possible to access connection string which defined in a C# class using Entity Framework?是否可以使用实体框架访问在 C# 类中定义的连接字符串?
【发布时间】:2014-05-19 13:50:57
【问题描述】:

我需要在应用程序中使用实体框架,我需要从用户输入的 web.config 文件中的连接字符串中设置用户名和密码。现在我需要知道如何访问放置在 web.config 中的连接字符串从我定义的 C# 类读取输入并将它们设置在连接字符串中? 我可以在 C# 类和实体框架中定义连接字符串吗?

【问题讨论】:

  • EF Context 类构造函数可能会收到一个带有连接字符串的字符串。
  • 我认为问题是如何将一个类传递给构造函数:-)

标签: c# .net entity-framework database-connection connection-string


【解决方案1】:

我没有测试过这段代码,但我认为它非常接近解决方案:

public static class ConnectionStrings
{
    public const string MyConnectionStrinGoesHere = "My connection string goes here";
}

public class Context : DbContext
{
    public Context(string connectionString) : base(connectionString) { }
}

public class ConnectionStringFromClassContext : Context
{
    public ConnectionStringFromClassContext() : base(ConnectionStrings.MyConnectionStrinGoesHere)
    {

    }
}

在你的程序中你可以使用:

private static void Main(string[] args)
{
    ConnectionStringFromClassContext context = new ConnectionStringFromClassContext();
}

您将传递静态类中定义的连接字符串。

【讨论】:

  • 感谢您的解决方案,但现在我如何将此 ConnectionStringFromClassContext 实例设置为 web.config? EF 如何访问此连接字符串?用这种方法是不是不需要在web.config中定义连接字符串?
  • 你能解释一下你想要什么,因为不是很清楚。
  • 当我在程序中配置连接字符串时,我需要在 web.config 文件中将其设置为实体框架的默认连接字符串。当我使用 EF 时,它会在 web.config 中声明一个连接字符串并使用它来连接数据库。
  • 如果我使用您的解决方案,Entity Framework 能否确定我以编程方式声明的连接字符串?
  • 应该是。 EF 使用名称或全连接 Stein gin 构造函数。我的代码创建了一个指定连接字符串的新上下文。试一试
猜你喜欢
  • 2014-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多