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
)