Sqlite-net的文档说,您可以使用泛型中的泛型来使用库中可用的ORM创建表:
await connection.creatTableAsync<myClass>();
这将在数??据库中生成一个名为myClass的表.
现在假设我需要另一个表来存储相同类型(myClass),但存储在另一个具有不同名称的表中(例如myOtherClassTable).
如何使用Sqlite-net库完成此操作?
解决方法:
Now suppose that I need another table for storing the same type
(myClass) but in a different table with different name
你做不到
The Table method requires that a table exists with the same name as
the type being returned.
这是一个简单的ORM,并不旨在考虑您对它施加的任何人为限制.它根据类型名称跟踪使用的表,因此在处理查找表以查看将某个类型映射到多个表之前,将需要另一层间接操作.
如果我想检索数据库中myClass对象的所有行怎么办-它应该同时返回myClass表和myOtherClassTable中的行吗?您将需要开始编写更多的ORM功能以提供选项并弄清楚所有这些内容,而这正是使您进入严重的ORM领域的那种东西.
根据所有属性的可见性,您可以创建一个子类类型,该子类类型实际上并没有实现任何新功能,而只是具有不同的类名或使用通用的IMyClass接口,并且实际上有两个不同的类以不同的名称实现了该接口,但是相同的实现.
这些面向对象的解决方案都不是真正理想的解决方案,如果可能的话,您应该考虑将其他属性添加到您的类对象中,以对其进行筛选,以确定哪些项应放置在2个单独的表中.
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!