2017-06-09 8 views
1

私のデータベースからモデルを作成するためにScaffold-DBContextコマンドを使用しています。私はプロパティ名すべて大文字を返すようにしたいので、私は Net Core Scaffold-DBContext CustomCandidateNamingServiceがバージョン2.0.0-preview1で機能しない

public class CustomCandidateNamingService : CandidateNamingService 
{ 
    public override string GenerateCandidateIdentifier(string original) 
    { 
     return original.ToUpper(); 
    } 
} 

を実施しました。 これはバージョン1.1.2で機能しますが、バージョン2.0.0-preview1-finalでは機能しません。

何かを変更する必要がありますか?

ありがとうございました。

+0

何が効果がありませんか?エラー?何も起こりません?また、AFAIKのcadidatenamingserviceはEFCoreコードでのみ使用され、それ以外は何も使用されませんでした。彼らはAPIを変更しました。いくつかのエラーテキストが役立ちます。 –

+0

こんにちは。 GenerateCandidateIdentifierのthコードが実行されていないことを意味します。私は間違いがない。バージョン2.0.0-preview1-finalを使用すると、生成されたメンバーは大文字ではありません。バージョン1.1.2を使用すると、生成されたメンバーは期待どおり大文字になります。 – skysurfer

答えて

3

このリポジトリを確認してみましょう。 https://github.com/arichika/EFCore2.0-Scaffold-DBContext-CustomCandidateNamingService

コードを変更する必要があります。

まず、IDesignTimeServicesを継承する新しいクラスを作成する必要があります。

public class MyScaffoldingDesignTimeServices: IDesignTimeServices 
    { 
     public void ConfigureDesignTimeServices(IServiceCollection services) 
     { 
      services.AddSingleton<ICandidateNamingService, 
            MyScaffoldingCandidateNamingService>(); 
     } 
    } 

次に、これを行います。

public class MyScaffoldingCandidateNamingService : CandidateNamingService 
{ 
    public override string GenerateCandidateIdentifier(string original) 
    { 
     return original.ToUpper(); 
    } 
} 

サンプルはこちらです。 https://github.com/arichika/EFCore2.0-Scaffold-DBContext-CustomCandidateNamingService/blob/master/src/ScaffoldMyDb/MyScaffoldingDesignTimeServices.cs

関連する問題