我试图弄清楚如何从对象类型创建一个空表。类型非常简单(只有原始类型属性);有什么可以使用的吗?
我是否需要使用某些属性反射来编写自己的“CREATE TABLE”查询?
我正在开发一个项目,该项目使用 Dapper 从 FirebirdSQL 数据库读取数据并将其中一些表写入 Sqlite 数据库。
任何建议表示赞赏。
正如 Marc 所说,Dapper 不会为您执行此操作,但请在此处查看我的答案(ADO.NET distinct databases)并简单地调整命令属性之一来构造 CREATE TABLE 语句,它将利用反射. 有了这么多的领先优势,这应该是非常简单的。
我会创建一个示例,但我正在通过手机回答这个问题。
派对迟到了,但我只想补充一点,这种功能在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
但是请注意,这个库不是免费的。