映射1:n关系会自动创建一个FK列,在下面的示例中,是Book表中的一列Author_id。但是,如何将此值作为Book实体的属性提供?如果我在AuthorID中创建一个属性,是否可以使NHibernate使用此属性作为外键,所以我可以以编程方式访问它?
public class Author
{
public IList<Book> Books { get; set; }
}
//AuthorMap:
HasMany(x => x.Books);
答案 0 :(得分:0)
据我所知,你需要一种双重关系。 只需在Book类中添加属性Author
即可public virtual Author Author {get; set;}
并将其映射为Book Mappping文件中的参考
Reference(x => x.Author);
您可以为两个映射指定相同的FK列名称,以确保链接相同的表列。
如果您确实需要在book中使用int AuthorID,那么创建此属性并将其设置为Not.Update和Not.Insert,只需将其设为只读。