带有 sqlite 数据库的 Azure Web 应用程序
Azure web app with sqlite database
我想创建一个简单的 Azure Web 应用程序,它将数据存储在部署它的文件夹中 (..\wwwroot\
)。
我从 "myapp".azurewebsites.net 下载了提供的示例代码,但使用了 EntityFramework。是否可以将 EF 配置为使用 SQLite,或者我是否需要实现自己的 SQLite 提供程序? (...使用 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;
}
}
我收到一个错误,这并没有告诉我太多关于它的信息...
The type initializer for 'SQLite.SQLiteConnection' threw an exception
部署包文件上传到Azure Runtime环境,持久化在d:\home目录下。这些文件是持久的,并在站点的多个实例之间共享。在 Web 应用程序的免费层和共享层中,持久存储限制为 1 GB,而基本层和标准层分别为 10GB 和 50GB。
所以不用在代码中创建 sqlite 文件;预先创建它,并将其作为已部署文件集中的一个文件上传。使用 kudu 查找文件的实际路径并在您的代码中引用它。
参考:https://github.com/projectkudu/kudu/wiki/Azure-runtime-environment#file-system
这种方法的缺点是每次执行部署时都会替换数据库文件。
我想创建一个简单的 Azure Web 应用程序,它将数据存储在部署它的文件夹中 (..\wwwroot\
)。
我从 "myapp".azurewebsites.net 下载了提供的示例代码,但使用了 EntityFramework。是否可以将 EF 配置为使用 SQLite,或者我是否需要实现自己的 SQLite 提供程序? (...使用 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;
}
}
我收到一个错误,这并没有告诉我太多关于它的信息...
The type initializer for 'SQLite.SQLiteConnection' threw an exception
部署包文件上传到Azure Runtime环境,持久化在d:\home目录下。这些文件是持久的,并在站点的多个实例之间共享。在 Web 应用程序的免费层和共享层中,持久存储限制为 1 GB,而基本层和标准层分别为 10GB 和 50GB。
所以不用在代码中创建 sqlite 文件;预先创建它,并将其作为已部署文件集中的一个文件上传。使用 kudu 查找文件的实际路径并在您的代码中引用它。
参考:https://github.com/projectkudu/kudu/wiki/Azure-runtime-environment#file-system
这种方法的缺点是每次执行部署时都会替换数据库文件。