ASP.Net Core 1.0で一般的なEntityFrameworkCore DbContextを登録する

asp.net-core-1.0 asp.net-mvc c# entity-framework-core generics

質問

私はASP.Net Core 1.0でジェネリックDbContextを使用しようとしていますが、次のエラーが発生しています:

ArgumentException: Type 'idmin.data.IdminDataContext`1[System.Int32]' does not have a default constructor Parameter name: type 

IdminDataContextの定義方法は次のとおりです。

public class IdminDataContext<TKey> : DbContext where TKey : IEquatable<TKey>
{

    public IdminDataContext(DbContextOptions<IdminDataContext<TKey>> options) : base(options)
    {
    }

    public DbSet<Idmin.Models.Client<TKey>> Clients { get; set; }
}

スタートアップクラスに登録する方法は次のとおりです。

public void ConfigureServices(IServiceCollection services)
{
    var connection = "my connection string";
    services.AddDbContext<IdminDataContext<int>>(options => options.UseSqlServer(connection));

    services.AddMvc();
}

IdminDataContextクラスにデフォルトのコンストラクタを追加しようとしましたが、それは役に立ちませんでした。私はここで何が分からないのでしょうか?

受け入れられた回答

私は問題を発見した。それは私の愚かな間違いでした。コントローラでコンストラクタインジェクションを使用する代わりに、Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ComplexTypeModelBinderのCreateModelメソッドで例外を引き起こしていたアクションメソッドインジェクションを使用していました。アクションメソッドインジェクションの代わりに依存関係インジェクションをコンストラクタに移動することでこの問題を修正しました。



Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ