我有2个表所示: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 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;}
}
我尝试映射这些类是这样的:
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);
}
}
我读过的数据表,但最终与NHibernate.ObjectNotFoundException
。在我的情况下,我应该如何映射类没有外键,但基于相同的PK Id值加入另一个表。有人能指导我如何使这件事情有效吗?
你为什么做这样的说法,而不必从文章内容外键? –
您没有指定FK,所以您尝试使用'Column(“Id”)'而不是'ForeignKey(“Id”)'?这只是一个猜测虽然... –
@ColmPrunty我只是迁移它使用ORM,它是遗留表,所以我不想改变它 –