1

如何将自定义连接字符串分配给实体框架?默认情况下,实体框架从 Web 配置文件或应用程序配置文件中读取连接字符串。我想在字符串变量中创建一个连接字符串并将连接分配给实体框架。因此,该实体框架从该连接字符串创建连接桥。

我们也可以说它是运行时的实体框架连接字符串。

请帮助我如何做到这一点。

4

2 回答 2

1

最简单的方法是在 DAL 中创建一个继承 Datacontext 类的部分类,该类有一个简单的构造函数,允许将连接字符串传递到类中并创建 DataContext 实体。

现在,为了在 99% 的项目和解决方案中进一步简化事情,我创建了一个无参数构造函数,它通过在我的数据访问层中创建的自定义配置部分读取静态连接字符串。因此,我只需调用一个 new Class() 并使用实例中创建的配置为我创建我的 DataContext。这允许跨多个程序集、项目(和项目类型)轻松使用,从而使部署和配置变得非常简单。

这是一个使用配置处理程序并支持多个项目的简单类结构的示例。

首先,像往常一样创建数据上下文。然后创建一个部分类来扩展它。

http://forums.asp.net/t/1747809.aspx/1

于 2013-04-12T07:29:26.143 回答
1

实体框架上下文继承自 DbContext。通过对 TextTemplate 文件进行一些编辑,您可以添加一个新的构造函数并使用您的 ConnectionString。

显而易见的起点是这里(Context.tt 第 57 行 EF5):

<#=Accessibility.ForType(container)#> partial class <#=code.Escape(container)#> : DbContext
{
    public <#=code.Escape(container)#>()
        : base("name=<#=container.Name#>")
    {
<#
if (!loader.IsLazyLoadingEnabled(container))
{
#>
        this.Configuration.LazyLoadingEnabled = false;
<#
}

这里 tt 生成调用 DbContext 的 Base 构造函数的构造函数。这是你的钩子。

于 2013-04-12T06:04:38.857 回答