Dbcontext的构造方法在更新模型时不断更改基本参数

时间:2018-09-28 12:48:06

标签: c# visual-studio entity-framework entity-framework-6

在上下文类中,我有以下内容使项目成为数据的黑匣子。

     public MyEntities()
        : base("metadata = res://*/fda.csdl|res://*/fda.ssdl|res://*/fda.msl;provider=System.Data.SqlClient;provider connection string='data source=MyServer;initial catalog=CitywideEmployees;persist security info=True;user id=MyUserID;password=MyPassword!;MultipleActiveResultSets=True;App=EntityFramework'")
    {
    }

但是,当我使用“从数据库更新模型”选项更新edmx时,它总是会重置基本参数,就像它想在App.config文件中查找连接字符串一样。如何避免每次更新edmx时都必须更新基础?

谢谢。

1 个答案:

答案 0 :(得分:1)

打开您的{您的名字} .Context.tt并保存以下更改

<#=Accessibility.ForType(container)#> partial class <#=code.Escape(container)#> : DbContext
{
    public <#=code.Escape(container)#>()
        : base("name=<#=container.Name#>")
    {
<#

在引号中说“ name = <#= container.Name#>”

替换为

<#=Accessibility.ForType(container)#> partial class <#=code.Escape(container)#> : DbContext
{
    public <#=code.Escape(container)#>()
        : base("metadata = res://*/fda.csdl|res://*/fda.ssdl|res://*/fda.msl;provider=System.Data.SqlClient;provider connection string='data source=MyServer;initial catalog=CitywideEmployees;persist security info=True;user id=MyUserID;password=MyPassword!;MultipleActiveResultSets=True;App=EntityFramework'")
    {
<#

保存您的tt文件