我这样问这个问题是因为我可以想象有一个潜在的简单但 Devart 特定的解决方案,但对于任何类似情况也可能是一个非常通用的解决方案。
我正在使用 Devart LINQ To Oracle,通常您在设计时在 lqml 文件中创建一个类ItemX
,并指定它后面的表。然后,在运行时,您使用 aTable(Of ItemX)
来查询数据库。到现在为止还挺好。
现在我遇到了一种情况,我有两个相同的表ItemX
和ItemY
,并且我需要根据运行时标志从一个或另一个查询。除此之外,所有代码都是相同的,我想保持这种方式。但是,它Table(Of ItemX)
是强类型的,因此我需要所有内容的重复版本,唯一的区别是数据类型。
因此,Devart 特定的解决方案将是:有一个名为的项目类,只是,,Item
但在运行时做一些事情,以便 Devart DataContext 使用不同的后备表。然后所有代码都使用基础Item
对象,但是当持久化到数据库和从数据库持久化时,它知道要使用哪个表。有没有办法做到这一点?
更通用的方法是连接到 IQueryable 链中,以便它在内部使用ItemX
andItemY
类,但将所有内容转换为Item
外部签名中的基类。我什至无法清楚地描述这个问题。有没有办法做到这一点?