2016-11-24 10 views
0

私はWindowsコアアプリケーションをWindowsサービスとして実行しています。だから私の質問は、データベース操作のためのWindowsサービスでdbcontextを使うことができますか?.netコアアプリケーションでdbcontextを使用する

public static class SendMailHostServiceExtensions 
{ 
    public static void RunAsSendMailService(this IWebHost host) 
    { 
     var webHostService = new SendMailHostService(host); 
     webHostService.ServiceName = "LMS.WinService.SendEmail"; 
     ServiceBase.Run(webHostService); 
    } 
} 

は私がサービスクラスに依存性を注入する必要がありますか:以下

は、サービスクラス

public class SendMailHostService : WebHostService 
{ 
    private readonly EventLog _log = new EventLog("Application") { Source = "Application" }; 
    public SendMailHostService(IWebHost host) : base(host) 
    { 

    } 

    protected override void OnStarted() 
    { 
     Console.WriteLine("Asp.net service started."); 
     Console.ReadLine();  
    } 

    protected override void OnStarting(string[] args) 
    { 
     Console.WriteLine("Asp.net service starting."); 
     Console.ReadLine(); 
    } 
} 

とサービス拡張クラスですか? 編集:1 最初に、クライアント管理データベースに接続する必要があります。そこでは、Clientsconnectionstringというテーブルにすべてのクライアントの接続文字列があり、その後、クライアントごとにdbコンテキストを作成してWindowsサービスロジックを実行する必要があります。

+1

注射を使うかどうかはあなたの選択です。そうではありません - あなたはする必要はありません。あなたがそうならばあなたはそうするかもしれません – Marty

+0

私は私の質問を編集しました、あなたはそれを更新していただけますか? – Rohit

+0

「方法」と「どうすればよい」に違いがあります。答えは広範になります。回答は一般的になります。具体的になると、調査されます。コミュニティが実証できる回答を呼び出す質問をする。あなたはクラスライブラリcsprojを持っていますか?あなたはどんな種類のドメイン駆動型設計をしていますか? –

答えて

1

必要に応じて、必要な各方法でコンテキストを作成できます。

+1

ServiceProviderを拡張しない拡張メソッドや簡単なパターンではないコンフィグレーションオブジェクトにアクセスできる拡張メソッドでは簡単には実行できない設定にアクセスする必要があるので、簡単ではありませんシングルトンやサービスロケータのようなパターン – Tseng

+0

どのような設定ですか? – mayu

+0

私の質問を編集しました。あなたはそれを更新してもらえますか? – Rohit

関連する問題