이 같은 두 테이블이 있습니다, 그럼 내가이 같은 도메인 클래스를 생성했다FluentNHibernate 매핑 같은 기본 키
TABLE ARTICLE
Id int NOT_NULL PK
Title nvarchar(50) NOT_NULL
TABLE CONTENT
Id int NOT_NULL PK
content nvarchar(MAX) NOT_NULL
remarks nvarchar(200)
는 각각의 문서는 문서 PK ID와 같은 PK ID로 내용이됩니다 :
public class ArticleMap : ClassMap<Article>
{
public ArticleMap()
{
Id(x => x.Id);
Map(x => x.Title);
Reference(x => x.Content).ForeignKey("Id");
}
}
public class ContentMap : ClassMap<Content>
{
public ContentMap()
{
Id(x => x.Id);
Map(x => x.content);
Map(x => x.remarks);
}
}
내가 테이블에 데이터를 읽을 않았지만,와 끝까지 :
public class Article {
public virtual int Id {get; set;}
public virtual string Title {get; set;}
public virtual Content Content {get; set;}
}
public class Content {
public virtual int Id {get; set;}
public virtual string content {get; set;}
public virtual string remarks {get; set;}
}
나는 이런 식으로이 클래스를 매핑하려고 NHibernate.ObjectNotFoundException
. 내 경우에 어떻게 외래 키가없는 클래스를 매핑해야하지만 동일한 PK Id 값을 기반으로하는 다른 테이블에 조인해야합니다. 누군가 이걸 어떻게 작동시키는 지 안내 해줄 수 있습니까? 당신이 일을 찾고 있기 때문에 당신의 매핑
References(x => x.Content).Table("Content").KeyColumn("Id");
왜 당신이 그런 식으로 일을 대신 조에서 콘텐츠에 대한 외래 키가 있습니까? –
FK를 지정하지 않았으므로'ForeignKey ("Id")'대신'Column ("Id")'를 사용하려고 했습니까? 그것은 단지 짐작하지만 ... –
@ColmPrunty 나는 ORM을 사용하기 위해 그것을 마이그레이션합니다. 그래서 그것을 바꾸고 싶지 않습니다. –