我首先使用EF代码和相当多的实体类型,我正在构建一些带有过滤器模型的报告,这些过滤器模型引用不同实体类型中的ID(主键)字段。根据表的不同,ID字段可以是Byte,Short,Integer或Long(取决于我在该表中预期的记录数以及引用的位置)。
EG。我可能有一个“Channel”表,其ID字段的类型为Short,而“Order”的ID字段的类型为“Integer”。
当我为视图创建模型以进行过滤时,例如。频道,我会做一个ChannelID属性,它可能是短的还是短的? (如Nullable(简称))。然而,这是一个痛苦,因为我每次添加过滤器时都必须为相关实体类型查找正确的ID类型,并且从长远来看,它很脆弱,因为我可能会更改特定实体上的ID类型并且不要我想要追捕每一个对它的引用。
理想情况下,我想有一些方法可以参考它,例如。
Public Property ChannelID As TypeOf([Channel].[ID])
但是我看不到任何办法。
如果我使用的是C,我可能#define ChannelID很短并且只是将类型称为ChannelID,但是我看不到使用VB.NET编译器实现类似的东西的任何方式(isn'与上述解决方案一样好。
我已经想到了将它作为每种类型的接口实现的想法,但是如果在单个模型中对同一个实体进行多个属性过滤(这是可能的),那就不起作用了,并且它很麻烦它表示每个实体类型的接口。
我意识到我可以将它们全部设置为Long并且这样做并没有真正的主要缺点,但我对匹配类型很挑剔。
有没有人有任何聪明的想法来解决这个问题?
答案 0 :(得分:1)
类型别名将跨文件工作 - 在项目属性的“引用”选项卡上设置它 - 例如,test = System.Int32。 然后在项目的任何文件中,您都可以使用类型别名'test'。 如,
Dim myInt As test