c# - 使用 linq2db 创建数据库
问题描述
我正在编写一个小程序来测试 linq2db。如果数据库尚不存在,我想要做的是创建数据库。大多数(全部?) linq2db 文档都假定现有数据库。我检查数据库是否存在,如果不存在,则使用 CreateCommand 创建一个空数据库,如下所示。Intellisense 表示此方法“仅供内部使用”。可以使用 CreateCommand 还是有更好的方法?
namespace SqliteTest
{
public partial class ImageDatabaseDB : LinqToDB.Data.DataConnection
{
public ITable<testTable> testTables { get { return this.GetTable<testTable>(); } }
public void InitMappingSchema()
{
}
public ImageDatabaseDB()
{
InitDataContext();
InitMappingSchema();
}
public ImageDatabaseDB(string configuration) : base(configuration)
{
InitDataContext();
InitMappingSchema();
}
partial void InitDataContext();
}
[Table("testTable")]
public partial class testTable
{
[PrimaryKey, Identity] public int id;
[Column, NotNull] public string Name;
[Column, Nullable] public string Description;
}
public static partial class TableExtensions
{
public static testTable Find(this ITable<testTable> table, long id)
{
return table.FirstOrDefault(t =>
t.id == id);
}
}
class Program
{
static void Main(string[] args)
{
const string dbLocation = @".\TestDatabase\TestDatabase.sqlite";
if (!File.Exists(dbLocation))
{
using (var db = new TestDatabaseDB())
{
db.CreateCommand();
// create tables...
}
}
}
解决方案
要创建 sqlite 数据库,您应该使用LinqToDB.DataProvider.SQLite.SQLiteTools.CreateDatabase(...)
方法
推荐阅读
- java - 如何检查 InputStream 7Z 存档文件是否受密码保护?
- sql - 在 JOIN 内或使用 CTE 性能之后使用计算
- reactjs - 在本机反应中格式化从 asyncStorage 检索的数据
- hive - apache Drill 无法启用 hive 插件
- github - 从容器中提取生成的文件作为工件
- python - 脚本完成后从 Python 脚本获取结果?
- google-sheets - 在数据数组中查找第一个满足条件
- html - 根据 Facebook - 如何在您的网站上正确嵌入 Facebook 托管的视频
- google-cloud-transcoder - 转码带字幕的视频时出现内部错误
- vb.net - 如何更改 WebAPI 控制器中的 img src 属性。HttpContext.Current?
?