2016-09-27 34 views
2

我想創建一個簡單的azure web應用程序,它將數據存儲在部署它的文件夾(..\wwwroot\)中。 我從「myapp」.azurewebsites.net下載了所提供的示例代碼,但使用了EntityFramework。是否可以配置EF來使用SQLite,還是我需要實現自己的SQLite提供程序? (...使用PCL版本從https://www.nuget.org/packages/sqlite-net-pcl/ 有人可以推薦我的任何樣品我沒有找到合適的SQLite片段在Azure上與sqlite數據庫的Azure web應用程序

這是到目前爲止我的代碼:?

public class DataService 
{ 
    private static string sqliteFilename = "myDbName.sqlite"; 
    private static SQLiteConnection dbConnection; 

    public static bool Initialize() 
    { 
     Directory.CreateDirectory(HttpContext.Current.Server.MapPath(@"\App_Data\")); 
     string path = Path.Combine(HttpContext.Current.Server.MapPath(@"\App_Data\"), sqliteFilename); 
     dbConnection = new SQLiteConnection(path); 
     dbConnection.CreateTable<Category>(); 
     dbConnection.CreateTable<User>(); 
     return true; 
    } 
} 

我得到一個錯誤,這並沒有告訴我很多關於它...

爲「SQLite.SQLiteConnection」的類型初始值引發了異常

回答

0

將部署包的文件上載到Azure運行時環境中,並保留在目錄d:\ home中。這些文件是持久的,並在網站的多個實例之間共享。在Web App的空閒和共享層中,持久存儲限制爲1 GB,而Basic和Standard層則分別獲得10 GB和50 GB。

因此,而不是在代碼中創建sqlite文件;預先創建它,然後將其作爲文件上載到一組已部署的文件中。使用kudu查找文件的實際路徑並在代碼中引用該路徑。

編號:https://github.com/projectkudu/kudu/wiki/Azure-runtime-environment#file-system

這種方法的缺點是數據庫文件將執行部署,每次更換。

相關問題