캐슬 액티브 레코드/NHibernate에서 두 데이터베이스에 참여하는 방법이 있습니까?액티브 레코드의 데이터베이스에 합류하기
나는 서로 조인하고 하나의 쿼리 결과 집합으로 반환해야하는 별도의 데이터베이스에 2 개의 테이블에 데이터를 가지고 있습니다. OO 방법이 없다면 hql 또는 최악의 경우를 사용하여 수행 할 수 있습니까? 동적 SQL을 실행하고 데이터 테이블과 같은 일종의 콜렉션을 반환하는 표준 방법이 있습니까?
캐슬 액티브 레코드/NHibernate에서 두 데이터베이스에 참여하는 방법이 있습니까?액티브 레코드의 데이터베이스에 합류하기
나는 서로 조인하고 하나의 쿼리 결과 집합으로 반환해야하는 별도의 데이터베이스에 2 개의 테이블에 데이터를 가지고 있습니다. OO 방법이 없다면 hql 또는 최악의 경우를 사용하여 수행 할 수 있습니까? 동적 SQL을 실행하고 데이터 테이블과 같은 일종의 콜렉션을 반환하는 표준 방법이 있습니까?
두 테이블이 이미 매핑되어 있지만 별도의 세션 팩토리에있는 경우에는 그다지 많은 작업을 수행 할 수 있다고 생각하지 않습니다. 자신의 코드에 "가입"해야합니다.
그런 경우가 아니라면, 당신은 : 즉, 데이터베이스보기를 통해
create view othertable as select * from otherdatabase..othertable
를 외국 테이블을 매핑 할 수 있으며 로컬 테이블 것처럼 액티브에서이지도보기.
보기, 좋은 생각을 만드는 것을 끝내었다. – Justin
이미지도 클래스를 데이터베이스로 사용해 보셨습니까? 귀하의 액티브 레코드 시작 설정에서
<config database="MsSqlServer2005" type="BaseClassDatabaseOne, MyAssembly">
</config>
<config database="MsSqlServer2005" type="BaseClassDatabaseTwo, MyAssembly">
</config>
abstract class BaseClassDatabaseOne {}
abstract class BaseClassDatabaseTwo {}
[ActiveRecord]
class MyClassModelTwo: BaseClassDatabaseTwo
{
[PrimaryKey(PrimaryKeyType.Native)]
public virtual Byte Id { get; set; }
}
class MyClassModel: BaseClassDatabaseOne
{
[PrimaryKey(PrimaryKeyType.Native)]
public virtual Byte Id { get; set; }
[BelongsTo("Id")]
public virtual MyClassModelTwo Two { get; set; }
}
나는이 도움을 받기를 바랍니다.
소스 코드를 포맷하십시오. –
데이터베이스가 동일한 서버에 있습니까? –
@David Kemp - 네, 그들은 같은 서버에 있습니다. – Justin
어떤 DBMS입니까? –