【问题标题】:How to create mapping for a List<SomeNativeType> in FluentNhibernate?如何在 FluentNhibernate 中为 List<SomeNativeType> 创建映射?
【发布时间】:2011-01-31 04:07:24
【问题描述】:

我正在尝试使用 Fluent NHibernate 为以下模型创建映射文件。但是,我不确定如何为映射文件中的List&lt;&lt;string&gt;string&gt; 进行映射。

    public class MyClass
    {
        public virtual Guid Id { get; set; }
        public virtual string Name { get; set; }
        public virtual List<string> MagicStrings { get; set; }
    }

    public class EnvironmentMapping : ClassMap<Models.Environment>
    {
        public EnvironmentMapping()
        {
            Id(x => x.Id);
            Map(x => x.Name);
            //HasMany(x => string)  What should this be ?
        }
    }

【问题讨论】:

  • MagicStrings 是作为分隔字符串存储在同一个表中还是单独的表中?
  • +1 我没有考虑到表格的存储位置/方式,这条评论以及我同事的一些帮助帮助我找到了解决方案,谢谢!

标签: nhibernate list fluent-nhibernate mapping


【解决方案1】:

这不是您要问的,但我只想指出 FNH Automapping 将映射您的类,而程序员绝对不需要进一步的帮助 - 即您不需要额外的映射类。

您只需要将成员声明为 IList,而不是 List。 (实际上,我认为您也必须使用 IList 进行常规 FNH 映射)。

还有一点 - 自动映射值类型(例如字符串和整数)存在一个错误,该错误是最近修复的,因此如果您决定采用自动映射路线(我高度推荐,顺便说一句!)。

【讨论】:

  • +1 用于建议自动映射,但我只是想看看事情以及它们是如何在幕后完成的,感谢您的建议 :)
【解决方案2】:

我找到了解决问题的方法,在我的情况下,我必须为 MyStrings 创建一个单独的表并与 MyClass 建立外键关系。

【讨论】:

    猜你喜欢
    • 2011-08-25
    • 1970-01-01
    • 2012-03-14
    • 2012-06-09
    • 2015-09-09
    • 2012-01-21
    • 2014-10-03
    • 2010-11-27
    • 2011-02-20
    相关资源
    最近更新 更多