我正在使用EF 4.2代码优先模型开发项目.此模型包含产品的TPH继承结构.我需要在鉴别器上对这个继承模型的多态结果进行分组,并遇到一些问题.
实体框架不会公开鉴别器以完成此分组.我的第一个问题是我可以直接访问这个鉴别器吗?我的阅读和经验告诉我没有,所以我提出了这种解决方案.它表现不佳,我不满意如何维护它.
我的类看起来像这样(简化):
Public MustInherit Class Product
<key()>
Public Property ProductID as integer
<StringLength(50, ErrorMessage:="Max 50 characters")>
<Required(ErrorMessage:="Product name is required")>
Public Property Name as String
<TimeStamp()>
Public Property Time_Stamp as DateTime = DateTime.Now()
End Class
Public Class Desktop
Inherits Product
<StringLength(50, ErrorMessage:="Max 50 characters")>
<Required(ErrorMessage:="Processor is required")>
Public Property Processor as String
End Class
Public Class Monitor
Inherits Product
<Required(ErrorMessage:="Monitor size is required")>
Public Property Size_Inches as Integer
End Class
Run Code Online (Sandbox Code Playgroud)
我构建了一个扩展方法,它接受一个产品并将其基类型名称作为字符串返回.
<Extension()>
Public Function ProductType(ByVal inProduct as Product) …
Run Code Online (Sandbox Code Playgroud) vb.net group-by table-per-hierarchy ef-code-first discriminator