【问题标题】:Fluent-NHibernate mappingFluent-NHibernate 映射
【发布时间】:2009-02-09 09:44:23
【问题描述】:

在我的数据库中,我有一个包含逗号分隔的电子邮件列表的字段。我如何将其映射到我的模型中的 IList<string>

【问题讨论】:

    标签: fluent-nhibernate


    【解决方案1】:

    您应该实现IUserCollection,它将您的 CSV 列映射到实际的电子邮件列表,然后在保存时将其序列化。

    【讨论】:

      【解决方案2】:

      有问题的表格甚至不是第一范式,这很糟糕。

      您可以做到这一点的唯一方法是遵循以下原则:

      class Foo
      {       
          private List<string> emails = new List<string>();       
      
          public string _Emails 
          { 
              get { return string.Join(",", emails.ToArray()); }
              set { emails = new List<string>(value.Split(',')); }
          }       
      
          public IList<string> Emails
          { 
              get { return emails; }          
          }
      }
      

      并映射_Emails 属性。

      编辑

      另一种解决方案是实现您自己的IUserTypeIUserCollection。这样你的模型会更漂亮。

      【讨论】:

      • 嗯,有时您不负责设计数据库。您的解决方案将进行一些调整(客户端也必须能够将地址添加到电子邮件字段),但我希望有某种用户定义的映射。我不太热衷于污染我的模型:)
      猜你喜欢
      • 2011-04-10
      • 2011-06-18
      • 2012-04-03
      • 2012-10-19
      • 2013-01-07
      • 2013-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多