我想利用 EF6 自定义多元化的新功能。我已经搜索了整个交织,但找不到一个像样的例子。
我从数据库 (SQL Server) 生成我的模型,并使用自定义 T4 模板来生成上下文和模型类。
据我所知,我应该能够创建一个继承自 DbConfiguration 的类并将其简单地放置在模型项目中。我已经做到了。
Public Class CustomConfiguration
Inherits DbConfiguration
Public Sub New()
MyBase.New()
SetPluralizationService(New CustomPluralizationService)
End Sub
End Class
这个类引用了我理解必须实现 IPluralizationService 的 CustomPluralizationService。好花花公子:
Imports System.Data.Entity.Infrastructure.Pluralization
Public Class CustomPluralizationService
Implements IPluralizationService
Public Function Pluralize(word As String) As String Implements System.Data.Entity.Infrastructure.Pluralization.IPluralizationService.Pluralize
End Function
Public Function Singularize(word As String) As String Implements System.Data.Entity.Infrastructure.Pluralization.IPluralizationService.Singularize
End Function
End Class
当然,我应该完成 Pluralize 和 Singularize 函数的实现,但我不知道该怎么做,因为我无法在任何地方找到任何语言的完整示例。有人可以帮忙吗?
MSDN 上的文档有这样的神秘垃圾:
Function Pluralize ( _
word As [%$TOPIC/dn176961_en-us_VS_113_3_0_0_0_0%] _
) As [%$TOPIC/dn176961_en-us_VS_113_3_0_0_0_1%]
Dim instance As [%$TOPIC/dn176961_en-us_VS_113_3_0_1_0_0%]
Dim word As [%$TOPIC/dn176961_en-us_VS_113_3_0_1_0_1%]
Dim returnValue As [%$TOPIC/dn176961_en-us_VS_113_3_0_1_0_2%]
returnValue = instance.Pluralize(word)
[%$TOPIC/dn176961_en-us_VS_113_3_0_2_0_0%] Pluralize(
[%$TOPIC/dn176961_en-us_VS_113_3_0_2_0_1%] word
)
[%$TOPIC/dn176961_en-us_VS_113_3_0_3_0_0%]^ Pluralize(
[%$TOPIC/dn176961_en-us_VS_113_3_0_3_0_1%]^ word
)