2010-03-24 77 views
0

我正在尝试使用Fluent NHibernate为以下模型创建映射文件。但是,我不确定如何在映射文件中为列表< string>执行映射。如何在FluentNhibernate中为列表<SomeNativeType>创建映射?

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 ? 
     } 
    } 

在这方面的帮助非常感谢。谢谢!

+3

MagicStrings是否存储在同一个表中作为分隔字符串或在一个单独的表中? – 2010-03-24 13:56:31

+0

+1我从来没有想过在哪里/如何存储表格方面,这个评论以及来自我的同事的一些帮助帮助我找到了解决方案,谢谢! – 2010-03-25 19:08:21

回答

0

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

感谢您的建议! :)

1

这并不完全是你所要求的,但我只想指出FNH Automapping将映射你的类,绝对没有程序员的进一步帮助 - 即你不需要额外的映射类。

您只需将该成员声明为IList而不是List。 (其实,我认为你也必须使用IList来定期进行FNH测绘)。

还有一点 - 自动映射值类型(例如字符串和整数,最近已修复)存在一个错误,因此如果您决定使用Automapping路由,请确保使用最新的FNH构建强烈推荐,BTW!)。

+0

+1用于提示自动映射,但我只是想看看事情,以及它们是如何在引擎盖下完成的,感谢您的建议:) – 2010-03-25 19:10:31