当前位置:首页 > 数据库 > SQlite

sqlite-net从同一类创建两个表

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)!