代码优先自动迁移

时间:2017-08-08 15:06:58

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

我正在处理的当前项目,我告诉实体框架通过设置SetInitializer并使用params null来执行任何操作:

public EfDbContext()
{
   Database.SetInitializer<EfDbContext>(null); //new NullDatabaseInitializer<EfDbContext>());
}

我有一个创建一些表的脚本。当我运行脚本时,它正在DB中创建dbo .__ MigrationHistory。

如何禁用迁移,我认为上面的代码会禁用它。

我错过了什么吗?我也没有启用迁移以及任何用于迁移的配置文件。

我正在使用EF 6.1.3。

2 个答案:

答案 0 :(得分:1)

在迁移文件夹中有一个名为Configuration的文件,在构造函数中尝试类似这样的文件:

public Configuration()
{
     AutomaticMigrationsEnabled = false;
}

无论配置如何,完全禁用迁移的丑陋但简单的方法是删除表dbo .__ MigrationHistory。

答案 1 :(得分:1)

我通过将以下代码添加到 public void fetchImage() throws IOException{ URL obj = new URL(rest_url); HttpsURLConnection con = (HttpsURLConnection) obj.openConnection(); con.setDoOutput(true); con.setRequestMethod("GET"); //specify your image file destination path File destinationFile=new File("/destinationPath"); FileOutputStream outputStream=new FileOutputStream(destinationFile); InputStream inputStream=con.getInputStream(); //start stream copy using a buffersize. here i am using a beffer size=1024 copyStream(inputStream, outputStream, 1024); outputStream.close(); inputStream.close(); } /*copy an inputStream to an OutputStream using a specific buffer size*/ public static OutputStream copyStream(InputStream is, OutputStream os, int buffer_size) throws IOException{ byte[] bytes = new byte[buffer_size]; for (; ; ) { // Read byte from input stream int count = is.read(bytes, 0, buffer_size); if (count == -1) break; // Write byte to output stream os.write(bytes, 0, count); } return os; } 中的Application_Start()来修复了此问题:

Global.asax