我的课程:
[PersistClass]
public class ExternalAccount
{
public virtual AccountType AccountType { get; set; }
public virtual int Id { get; private set; }
public virtual User User { get; set; }
public virtual Dictionary<string, string> Parameters { get; set; }
public ExternalAccount()
{
Parameters = new Dictionary<string, string>();
}
}
字典未被映射。我知道自动化默认情况下不会使用词典,我该如何配置映射?所有参数都是一个键/值对的列表 - 所以我希望它们存储在一个带有externalaccount表的外键的表中。我知道我可以用另一个类做到这一点 - 但它使得访问类中的参数变得更加困难 - 我宁愿一次配置复杂性。
请记住我是新的Fluent和nHibernate。
由于
答案 0 :(得分:0)
使用简单的类关系,如下所示:
public class Foo {
public virtual IDictionary<string, Bar> Bars { get; set; }
}
public class Bar {
public virtual string Type { get; set; }
public virtual int Value { get; set; }
}
您可以通过以下方式使用Fluent NHibernate进行映射:
mapping.HasMany(x => x.Bars)
.AsMap(x => x.Type);
其中Bar.Type用作字典中的索引字段。