我有一个这样的模型(简化)
public class Post { public string ID { get; set; } public string Title { get; set; } public string Body { get; set; } public string AuthorName { get; set; } public List<string> Attachments { get; set; } }
在我的数据库中,我有一个Post表和一个PostAttachment表
帖子附件表有2列:
帖子ID
AttachmentKey
(这些的基础是将附件上传到amazon s3,所以AttachmentKey是s3键)
我想做的是将AttachmentKey映射到返回/插入的Post对象的列表…
我该怎么做呢?
解决方法
您可能需要一个围绕字符串的类型,如果只能生成一个表名.像List这样的东西在您的应用程序中可能更有意义.我确定你可以深入挖掘并直接映射到字符串,如果你需要.
从那里,您可以从HasMany映射和指向您的表格的外键开始,即
HasMany (o => o.PostAttachments).ForeignKeyConstraintName ("FK_Attachment_Post");
我认为默认情况下,这将在表中查找一个post_ID列(不需要在附件对象上显示),我确定如果需要,还有一个方法.
您也可能需要在映射中使用.Inverse(),具体取决于您希望保存帖子附件的方式.
编辑:看完diego的帖子后,我认为上述可能只是工作,如果PostAttachments是字符串列表.我以前流畅的使用了他发布的方法,我很确定HasMany默认映射到一个nhibernate包.您可能需要在映射中指定列名称以使用现有的表.