9

データベースがドイツ語のテーブル名と列名を使用して設計されているため、エンティティフレームワークのデフォルトの複数化機能は機能しません。Entity Framework 5の複数化をカスタマイズする方法

私は、これについて議論するいくつかのリソースを見つけましたが、どれもうまくいかないようです。 私はマッピングを追加することができますPluralisationServiceがあります:

PluralizationService pluralizer = 
     PluralizationService.CreateService(CultureInfo.GetCultureInfo("en-us")); 
ICustomPluralizationMapping mapping = ps as ICustomPluralizationMapping; 
mapping.AddWord("Tabelle", "Tabellen"); 

しかし、どのような次は私が発見した何

? 私が試してみました:

EntityModelSchemaGenerator generator = new EntityModelSchemaGenerator(container); 
generator.PluralizationService = pluralizer; 
generator.GenerateMetadata(); 

と私のPOCO T4テンプレートでそれらの両方を置きます。しかし、次の例外がスローされました。

EntityContainer 'ContainerName'はストアEntityContainerではありません。パラメータ名:
+0

+1質問の調査のため。これはどのように質問する必要があります。多くの成功を収めずに自分自身でこの問題に苦しんだ。 – Judo

答えて

0

Microsoft.VisualStudio.TextTemplating ... GeneratedTextTransformation.TransformText()でSystem.Data.Entity.Design.EntityModelSchemaGenerator.Initialize(...)でstoreEntityContainer

私も探しています同じもののために。たぶんthisがお手伝いします。私はそのような基本的な機能を払うつもりはない。

EDIT:あなたが投稿

コードはCSDL、SSDLまたはあなたのクラスに応じて複数形MSLファイルにあなたを与えるだろうEdmGen2ウィッヒで使用されるべきです。完全にEFコードファーストでテーブル名をカスタマイズするには

0

、明示的にクラスに関連付けられたテーブルの名前を指定するTable属性を使用することができます。

[Table("InternalBlogs")] 
public class Blog 
{ 
    //... 
} 
0

非常に古い質問、誰かがある場合まだ可能なワークフロー/ソリューションを探しています:

私はデータベースからスキーマインポート(CSDL)をカスタマイズしたいという同様の問題がありました。次のように解決策/ワークフローは:

ローカル・データベースへのデータベース・スキーマ(私は201X VSのVisual Studioデータベースプロジェクトを使用)CSDL、SSDLとMSDLを作成するためにEDMGENを使用してデータベースモデルをインポート
  • 展開
    1. (必要に応じて追加のカスタマイズで)ファイル http://msdn.microsoft.com/en-us/library/vstudio/bb387165(v=vs.110).aspx
    2. 複数形やカスタムルールで命名を処理する方法についての私の変化にEDMGEN2を修正し、EDMXは
    3. ファイル作成は 出力を作成するために、T4テンプレートを実行しました。
  • 関連する問題