오늘 ServiceStack을 사용하기 시작했습니다. 그래서 내가 완전히 잘못된 것을하고 있는지 알려주세요.IDbConnectionFactory를 서비스 클래스에 삽입
내가하는 나는 두 가지 문제가 있습니다이 코드
[TestFixture]
public class UserServiceTests
{
private UserService service;
[SetUp]
public void SetUp()
{
var appHost = new BasicAppHost();
var dbFactory = new OrmLiteConnectionFactory(":memory:", false, SqliteDialect.Provider);
appHost.Container.Register<IDbConnectionFactory>(dbFactory);
service = new UserService();
service.SetAppHost(appHost);
}
[Test]
public void Calling_post_method_with_valid_User_saves_it_in_database()
{
var User = new User { Name = "Acme Limited" };
var id = service.Post(User);
Assert.AreEqual(1, id);
}
}
을 사용하고, 내 서비스 클래스로 DB를 주입하는 것을 시도하고있다 :
Could not load file or assembly 'System.Data.SQLite, Version=1.0.82.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
인가 : 1) 나는 예외가 무엇입니까 이 문제를 쉽게 해결할 수있는 방법이 있습니까? 그리고 테스트를 위해 SQLite가 실제로 필요합니까? 가짜 객체를 사용할 수 있습니까?
2) 컴파일러에서 service.SetAppHost (appHost)에 대해 경고합니다. SetAppHost가 비난되었습니다. SetAppHost를 사용하지 않고 서비스 클래스에 Db를 주입하려면 어떻게해야합니까?
아이디어가 있으십니까?
고마워요! OrmLite.Sqlite를 사용하면 NuGet이 버전 1.0.84를 설치했습니다. 그러나 OrmLite는 버전 1.0.82를 찾고있었습니다. 작동시키기 위해 필수 버전으로 업데이트되었습니다. – user356247