Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 表未使用EF 6.1的代码优先方法反映vs 2013上的数据库_Entity Framework_C# 4.0_Entity Framework Migrations_Visual Studio 2013 - Fatal编程技术网

Entity framework 表未使用EF 6.1的代码优先方法反映vs 2013上的数据库

Entity framework 表未使用EF 6.1的代码优先方法反映vs 2013上的数据库,entity-framework,c#-4.0,entity-framework-migrations,visual-studio-2013,Entity Framework,C# 4.0,Entity Framework Migrations,Visual Studio 2013,我在VS2013上的mvc项目中创建了模型类,并使用以下上下文和EF 6.1 public class DataBase : DbContext { public class DataBase : DbContext { public DataBase() : base("Db") { } public D

我在VS2013上的mvc项目中创建了模型类,并使用以下上下文和EF 6.1

public class DataBase : DbContext
    {
     public class DataBase : DbContext
            {
                public DataBase()
                    : base("Db")
                {
                }

      public DbSet<table> table{ get; set; }
        }
    }
"Db" is my connection string everything ,everything run good but table are not created on my database
公共类数据库:DbContext
{
公共类数据库:DbContext
{
公共数据库()
:基准(“Db”)
{
}
公共DbSet表{get;set;}
}
}
“Db”是我的连接字符串,所有内容都正常运行,但并没有在我的数据库上创建表
你试过这个吗

public class DataBase : DbContext
{
 public class DataBase : DbContext
        {
            public DataBase()
                : base("Name=Db")
            {
            }

  public DbSet<table> table{ get; set; }
    }
}
公共类数据库:DbContext
{
公共类数据库:DbContext
{
公共数据库()
:base(“Name=Db”)
{
}
公共DbSet表{get;set;}
}
}

:base()
设置为“Name=Db”。

在ef 6中,它们改变了工作方式,因此您需要执行一些手动步骤才能生成数据库。我认为你有几个选择:
1。使用打包管理器控制台并运行更新数据库命令。(您必须找出要使用的标志)这可能需要您在运行更新之前使用预期名称创建一个空白db。
2。将数据库初始值设定项命令更改为:

Database.SetInitializer<UserDbContext>(new MigrateDatabaseToLatestVersion<UserDbContext, Configuration>());
Database.SetInitializer(新的MigrateDatabaseToLatestVersion());
这将使您的代码始终更新/创建数据库。但这可能不是您想要的生产环境。。

3。您可以创建自己的初始值设定项,它还具有在创建时将数据植入数据库的优点。查看“请发布您的连接字符串”。您是否已从连接字符串中删除了登录信息,或者该信息是否已丢失?(不要在此处发布登录信息)由于您的integratedsecurity=false且没有用户名/密码,我希望您得到一个异常,因为您无法登录数据库,因此无法对其进行更改。但是您没有得到任何异常?当您在调试模式下调用DbContext(即获取所有表记录)时,是否可以检查DbContext是否正确初始化?并验证connstring是否符合您的预期?另外,为了安全起见,您应该从注释中删除数据源url(而不是从connstring)。是的,连接字符串正在工作,因为我在数据库中手动创建了表并访问了它,,,但我希望这应该由EFA完成。您确定ef正在访问您的数据库而不是localDb吗?是的,我确定,因为我正在服务器上查看我的数据库,在我手动创建表的地方,我刚刚尝试了此操作,但数据库仍然没有显示我的表。我通过包管理器控制台中的更新数据库命令发现此错误。.System.Reflection.TargetInvocationException:调用的目标已引发异常。-->System.TypeInitializationException:“System.Data.Entity.SqlServer.SqlProviderServices”的类型初始值设定项引发异常。-->System.TypeLoadException:程序集'EntityFramework.SqlServer,版本=6.0.0.0,区域性=中性,PublicKeyToken=b77a5c561934e089'中类型'System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy'中的'ExecuteAsync'方法没有实现。Hmm。。可能是您缺少一些标志,或者不是所有DLL都实现EntityFramework6,而是一些较旧的版本。请确认您拥有正确的ef版本,并且在web.config中正确引用了这些版本