2013-04-02 42 views
2

早上好。小巧玲珑:从对象类型创建表格

我想弄清楚如何从对象类型创建一个空表。 该类型非常简单(只有原始类型属性);有东西准备好使用? 我是否需要使用一些属性反射来编写我自己的“CREATE TABLE”查询?

我正在从FirebirdSQL数据库读取数据并使用Dapper将一些表写入Sqlite数据库。

任何建议表示赞赏。

谢谢!

+4

我不知道在短小精悍的任何这样做,个人。核心“小巧玲珑”当然不会,我在“彩虹”或“贡献”中看不到任何东西。 –

+0

@Marc,我建立了一个基础数据模型对象,并且我在这个问题的答案中链接了一个例子。我想开始一个可以利用Dapper的小型开源项目,但也可以提供一种简单但快速和可靠的方法来构建可为您构建语句的数据模型。它需要更多的抽象,以便你可以为不同的提供者提供基础模型等等,但是你认为什么是朋友? –

回答

5

正如马克所言,Dapper不会为你做这件事,但看看我的答案(ADO.NET distinct data bases)并简单地修改其中一个命令属性来构造一个CREATE TABLE语句,它将利用反射。这应该是非常简单的一个开始。

我会创建一个例子,但我从我的手机回答这个问题。

+0

谢谢您的建议;这正是我所做的。您的链接答案是一个加号,谢谢。 –

+0

@FerdinandoSantacroce,我很高兴我可以帮助! –

2

而是迟到了,但我只是想补充一点,这种功能可在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 
+0

请注意,这个库不是免费的 – tno2007