현재로서는 타사 응용 프로그램에 대한 인터페이스를 제공하는 명백한 코드 공이 있습니다. 타사 응용 프로그램에는 이어야하며 새 항목을 만드는 데을 사용해야하는 COM 어셈블리가 있습니다. 이 프로세스에는 두 단계가 포함됩니다. 새 객체 (기본적으로 ID)를 생성하고 새 객체 값으로 객체를 업데이트합니다.
COM 상호 운용성이 너무 느리기 때문에 데이터베이스에서 ID (및 관련 개체)를 생성하는 데만 사용합니다. 실제 업데이트는 일반 SQL 쿼리를 사용하여 수행됩니다.COM interop을 통해 ID 생성
COM 어셈블리를 바이 패스하지 않고 NHibernate를 사용하여 무거운 짐을 처리 할 수 있는지 알아 내려고합니다. 데이터베이스 상에 뭔가를 저장하는 코드는 다음과 같습니다.
using(var s = sessionFactory.OpenSession())
using(var t = s.BeginTransaction())
{
MyEntity entity = new MyEntity();
s.Save(entity);
t.Commit();
}
보통 NH 코드입니다. 자, 이것이 까다로워지는 곳입니다. 내가 생각자신의 구현을 제공해야합니다 Generate 메서드에서 COM 어셈블리를 호출하는 NHibernate.Id.IIdentifierGenerator. 그건 문제가되지 않습니다. 문제는 COM 어셈블리가 약간의 시간이 걸리는 초기화가 필요하다는 것입니다. 또한 어떤 이유로 동일한 프로세스의 여러 인스턴스가 마음에 들지 않습니다.
내가 알고 싶은 것은 발전기 코드에서 외부 서비스에 제대로 액세스하는 방법이 있는지입니다.
내가 원하는 모든 기술을 자유롭게 사용할 수 있으므로 문제가없는 IoC 컨테이너와 관련됩니다. 내가 찾고있는 건 내 코드에 정확히 연결하여 싱글 톤이나 다른 불쾌한 물건을 사용하지 않고도 제네레이터에서 필요한 것을 액세스 할 수 있도록하는 것입니다.