5

我试图弄清楚如何从对象类型创建一个空表。类型非常简单(只有原始类型属性);有什么可以使用的吗?

我是否需要使用某些属性反射来编写自己的“CREATE TABLE”查询?

我正在开发一个项目,该项目使用 Dapper 从 FirebirdSQL 数据库读取数据并将其中一些表写入 Sqlite 数据库。

任何建议表示赞赏。

4

2 回答 2

9

正如 Marc 所说,Dapper 不会为您执行此操作,但请在此处查看我的答案(ADO.NET distinct databases)并简单地调整命令属性之一来构造 CREATE TABLE 语句,它将利用反射. 有了这么多的领先优势,这应该是非常简单的。

我会创建一个示例,但我正在通过手机回答这个问题。

于 2013-04-04T13:04:19.793 回答
4

派对迟到了,但我只想补充一点,这种功能在ServiceStack.OrmLite中可用:

class Poco 
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Ssn { get; set; }
}

db.DropTable<Poco>();
db.TableExists<Poco>(); //= false

db.CreateTable<Poco>(); 
db.TableExists<Poco>(); //= true

db.ColumnExists<Poco>(x => x.Ssn); //= true
db.DropColumn<Poco>(x => x.Ssn);
db.ColumnExists<Poco>(x => x.Ssn); //= false

但是请注意,这个库不是免费的。

于 2016-09-28T16:23:55.117 回答