在Entity Framework Database First Modeling

时间:2015-05-12 14:27:10

标签: c# entity-framework

我正在使用Visual Studio 2012高级更新4和Entity Framework 6.1.2使用数据库优先建模。我需要将Code Generation Strategy None更改为Default,以便在代码中自定义连接字符串

但是当我从None切换到Default时,我会遇到很多错误,比如

The best overloaded method match for 'System.Data.Entity.DbContext.DbContext(string, System.Data.Entity.Infrastructure.DbCompiledModel)' has some invalid arguments 



Error   3   'ClassLibrary3.PHEntities' does not contain a definition for 'ContextOptions' and no extension method 'ContextOptions' accepting a first argument of type 'ClassLibrary3.PHEntities' could be found (are you missing a using directive or an assembly reference?)   C:\Users\demo\Documents\Visual Studio 2012\Projects\ClassLibrary1\ClassLibrary3\Model1.Designer.cs  36  18  ClassLibrary3

所以删除Model1.Context.ttModel1.tt错误就消失了,我可以传递自定义的连接字符串。

  string connection = PMCommon.PMSettings.GetEFPHConnectionString(Common.Settings.ConnectionString);
            using (var context = new PMEntities(connection))
            {
                var tests = from c in context.tblTags select c;


            }

我需要知道是否存在与此方法相关的任何隐藏危险,这可能会让我感到困惑,因为我正在向一个大型数据驱动的ASP.NET Web应用程序添加一个新模块,该应用程序广泛使用松散类型和强类型数据集我想用Entity Framework实现新的东西

1 个答案:

答案 0 :(得分:1)

不要这样做。你所要做的就是这个。创建一个名为PMEntities2.cs的新文件,执行此操作:

public partial class PMEntities
{
     public PMEntities(string connnectionString) : base(connectionString){}
}

那就是它。您不需要更改代码生成策略。