用Linq到Sqlite创建表(linq2db)
我想要做的是在空数据库上打开连接时动态创建一个table
。 我已经使用Linq
to Sqlite
创建了模型,并成功将其与非空数据库一起使用。
现在我正在尝试使用“新”数据库。
我做我的db.Insert如下:
using (MyDB db = MyDB("MyConnectionName")) { Person d = new Person() { name = "mimi" }; db.Insert(d); myLabel.Content = db.Drivers.First().name; } }
打开一个空数据库确定。 实际上是为它创建了一个0KB的文件。 但是当我尝试在其中插入某些内容(或者当然是读取内容)时,我得到一个exception: SQL logic error or missing database
我正在使用的库:
https://github.com/linq2db/linq2db
NuGet
包:
http://nuget.org/packages/linq2db.SQLite/
在开始写入空数据库文件之前,我需要做些什么吗?
Linq2DB不会自动创建表。 所以你必须检查表是否存在,如果不存在 – 创建它。 你可以这样做:
var sp = db.DataProvider.GetSchemaProvider(); var dbSchema = sp.GetSchema(db); if(!dbSchema.Tables.Any(t => t.TableName == "Person")) { //no required table-create it db.CreateTable(); }
不幸的是,缺乏文档。 但是你可以使用测试样本 。
我希望它有所帮助 – LINQ CRUD操作
你不打开数据库。
MyDB db = MyDB(“MyConnectionName”)< - 创建数据库。
db.open(); < - 加上这个。
那么你将通常运作。
- 在运行时编译代码,加载到当前appdomain但Type.GetType无法看到它
- 如何将布尔值绑定到GridViewColumn复选框(有代码但不起作用)?
- 如何将.NET位图传递给本机DLL?
- 如何在C#中的图像目录中创建video?
- InternalEquals的实现在哪里(object objA,object objB)
- 运算符重载与generics
- 如何在ASP.Net CreateUserWizard中获取新注册用户的用户ID?
- 如何在Visual Studio中添加SQL Server数据库文件(.mdf)而不安装SQL Server Express Edition?
- 将validation附加到MVC控制器/视图中使用的EF对象?