Entity Framework 구성 클래스에 종속성을 주입하려고하는데 작동하지 않는 것 같습니다. 구성 클래스는 this-엔티티 프레임 워크 "마이그레이션 구성"및 autofac
public class Configuration : DbMigrationsConfiguration<ApplicationContext>
{
private readonly IApplicationUserManager _applicationUserManager;
public Configuration(IApplicationUserManager userManager)
{
AutomaticMigrationsEnabled = true;
AutomaticMigrationDataLossAllowed = true;
_applicationUserManager = userManager;
}
protected override void Seed(ApplicationContext context) {
//seed data here
}
}
처럼 보이는 그리고 "업데이트 데이터베이스"를 실행하면 어떤 마이그레이션 구성 유형이 발견되지 않았다 "고 불평 때문에 작동하지 않습니다 this-
builder.Register(c => new Configuration(c.Resolve<ApplicationUserManager>()));
처럼 Autofac에 등록하고 어셈블리에서 ". 그래서 분명히 매개 변수가없는 생성자를 좋아하지 않습니다. 그래서 다음과 같이 Autofac와 함께 this-
public class Configuration : DbMigrationsConfiguration<ApplicationContext>
{
public IApplicationUserManager ApplicationUserManager {get;set;}
public Configuration()
{
AutomaticMigrationsEnabled = true;
AutomaticMigrationDataLossAllowed = true;
}
protected override void Seed(ApplicationContext context) {
//seed data here
}
}
같은 속성 주입을 사용하여 등록 시도 -
builder.Register(c => new Configuration { ApplicationUserManager = c.Resolve<ApplicationUserManager>() });
그러나,이 중 하나가 작동하지 않습니다는 ApplicationUserManager 속성은 항상 null입니다. Configuration 클래스에 속성을 주입 할 수 있습니까?
왜 구성에 IApplicationUserManager가 필요한지 궁금하십니까? 일반적으로이 파일을 깨끗하게 유지하고 구성 파일이있는 UpdateDatabase를 실행 하시겠습니까? – Spock
@ Spock은 조금 이상하지만, 역할 등으로 복잡한 사용자 계정을 시드한다는 것을 알고 있습니다.내가 rolemanager와 usermanager 추상화를 사용할 수있을 때 훨씬 쉽게 만들어졌다. 그들은 컨텍스트에 직접 액세스 할 수 있기 때문에 완전히 필요하지 않습니다. – thebringking