2014-09-10 2 views
0

여기 appHost 구성 코드 명명 된 사용하고있을 때 IUserAuthRepository를 등록하는 방법 :OrmLiteConnectionFactory가 연결

OrmLiteConfig.DialectProvider = PostgreSQLDialectProvider.Instance; 

var dbFactory = new OrmLiteConnectionFactory(); 
dbFactory.RegisterConnection("NamedKeyConnOne", new OrmLiteConnectionFactory("ConnOne")) 
{ 
    ConnectionFilter = x => new ProfiledDbConnection(x, Profiler.Current) 
}); 
dbFactory.RegisterConnection("NamedKeyConnTwo", new OrmLiteConnectionFactory("ConnTwo") 
{ 
    ConnectionFilter = x => new ProfiledDbConnection(x, Profiler.Current) 
}); 
container.Register<IDbConnectionFactory>(dbFactory); 

가 여기에 인증 부분이다 :

container.Register<IUserAuthRepository>(c => new OrmLiteAuthRepository(c.Resolve<IDbConnectionFactory>())); //Authentication and authorization 
container.Resolve<IUserAuthRepository>().InitSchema(); 

그래서 내 질문은 "을 어떻게 할 기본 연결 문자열이 없을 때 올바른 IDbConnectionFactory를 전달 하시겠습니까? "

감사합니다, 스티븐

답변

1

당신은 명명 된 IDbConnection 연결을 삽입 할 수 있지만, 당신은 당신이 같은 당신의 서비스에서 액세스 할 수있는 이는 IDbConnectionFactory에서 그것을 해결할 수 있습니다 다음 IUserAuthRepository에 대한

public class MyServices : Service 
{ 
    public IDbConnectionFactory DbFactory { get; set; } 

    public object Any(Request request) 
    { 
     using (var db = DbFactory.OpenDbConnection("NamedKeyConnOne")) 
     { 
      //... 
     } 
    } 
} 
+0

무엇? , 그 부분은 분명하지 않습니다. 각 세입자는 자체 인증 테이블이 필요합니다. –

+1

@StephenPatten [OrmLiteAuthRepository] (https://github.com/ServiceStack/ServiceStack/blob/master/src/ServiceStack.Server/Auth/OrmLiteAuthRepository.cs)도'IDbConnectionFactory'를 주입하지만 named는 지원하지 않습니다 연결을 사용하려면 대신 사용자 지정 수정 버전을 사용해야합니다. – mythz