我想创建一个简单的azure web应用程序,它将数据存储在部署它的文件夹中(..\wwwroot\
)。
我从" myapp" .azurewebsites.net下载了提供的示例代码,但是使用了EntityFramework。是否可以将EF配置为使用SQLite,还是需要实现自己的SQLite Provider? (...使用https://www.nuget.org/packages/sqlite-net-pcl/中的PCL版本
有人可以推荐我任何样品吗?我没有为Azure上的SQLite找到合适的代码段。
到目前为止,这是我的代码:
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;
}
}
我收到一个错误,但这并不能告诉我很多...
&#39; SQLite.SQLiteConnection&#39;的类型初始值设定项抛出异常
答案 0 :(得分:0)
部署包的文件上载到Azure Runtime环境中,并保存在目录d:\ home中。这些文件是持久的,并在站点的多个实例之间共享。在Web应用程序的免费和共享层中,持久存储限制为1 GB,而基本和标准层为10 GB和50 GB。
所以不要在代码中创建sqlite文件;预先创建它,并将其作为文件在已部署的文件集中上传。使用kudu查找文件的实际路径并在代码中引用该文件。
参考:https://github.com/projectkudu/kudu/wiki/Azure-runtime-environment#file-system
这种方法的缺点是每次执行部署时都会替换数据库文件。