2012-11-11 35 views
4

我已阅读mythz的帖子here,了解ORMLite如何从SQL中读取任何内容,并将其嵌入到相同形状的POCO中。太棒了。ServiceStack对视图的ORMLite支持

另一方面,ORMLite在将它们保存回数据库时如何处理这些“查看POCO”?因为他们不表,他们可能是观点或他们可能只是任何SQL SELECT查询,这样的:

var rows = dbCmd.Select<ShipperTypeCount>(
    "SELECT ShipperTypeId, COUNT(*) AS Total FROM Shippers GROUP BY ShipperTypeId ORDER BY COUNT(*)"); 

回答

6

有什么特别的你OrmLite使用波苏斯,他们不依赖或相关回任基础表,并且没有任何隐藏的魔术状态,OrmLite在调用之间缓存,以便知道哪些字段映射到。

对于每个数据库调用OrmLite只是使用POCO根据类型的模式定义创建适当的SELECT,INSERT,UPDATE或DELETE语句。 Apis显示了一些这方面的例子。

最好将OrmLite视为将您的POCO转换为SQL语句,这就是它的作用。因此,尝试插入ShipperTypeCount将尝试将记录插入名为ShipperTypeCount的表中,除非它具有将使用的[Alias("UseTableNameInstead")]属性。