なぜEffort.EF6単体テストを追加してからC#MVC Webサイトをもはや動かすことができないのですか?

asp.net-mvc c# effort entity-framework structuremap

質問

私のC#MVC WebサイトはDependency InjectionにStructureMapを使用しています。

私のDbContextのコンストラクタは次のように使用されていました。

public class PortalEntityModel : DbContext
{
    public PortalEntityModel() : base("name=PortalEntityModel")
    {
    }
}

今、ユニットテストのためにEffort.EF6を追加しました。私はDbContextコンストラクタをこれに変更しなければなりませんでした。

public class PortalEntityModel : DbContext
{
    public PortalEntityModel() : base("name=PortalEntityModel")
    {
    }
}

私は今私のコードを単体テストできます。変更後にStructureMapを作成できないため、私はもうウェブサイトを実行できません。

既定のインスタンスは登録されておらず、 'System.Data.Common.DbConnection'タイプのために自動的に決定できません

Effort.EF6を動作させながら、以前のようにDBContextを初期化する方法をStructureMapにどのように伝えることができますか?

EDIT -

StructureMapは、ウェブサイトが次のように開始されると開始されます...

public class PortalEntityModel : DbContext
{
    public PortalEntityModel() : base("name=PortalEntityModel")
    {
    }
}

ウェブサイトの開始時に自動的に開始されます

public class PortalEntityModel : DbContext
{
    public PortalEntityModel() : base("name=PortalEntityModel")
    {
    }
}

人気のある回答

私はそれを理解することができた。 DBContext構造体のコンストラクタを変更すると、DbConnectionに渡すことができませんでした。

だから私は今両方のコンストラクタを持って、どのコンストラクタがウェブサイトを使用すべきかを指示する構造マップセットアップに少しのロジックを追加しました。

c.For()。Use()。SelectConstructor(()=> new PortalEntityModel());




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