6
我有使用Fluent NHibernate映射的字典。该字典有一个复杂的密钥类型CultureInfo
。我的数据库不能存储该类型,所以我想使用它的字符串表示。如何使用FluentNHibernate映射复杂键类型(CultureInfo)的字典
在字典映射以外的映射中,我可以使用用户类型约定成功映射CultureInfo
-properties。现在我想知道如何做二元映射。
下面是一个包含词典中的实体:
public class MultilingualPhrase : Entity
{
private IDictionary<CultureInfo, string> languageValues;
public virtual IDictionary<CultureInfo, string> LanguageValues
{
get
{
return languageValues;
}
}
}
下面是该实体的自动映射覆盖:
public void Override(AutoMapping<MultilingualPhrase> mapping)
{
mapping
.HasMany(n => n.LanguageValues)
.Access.ReadOnlyPropertyThroughCamelCaseField()
.AsMap<string>("CultureName")
.Element("Phrase")
.Table("MultilingualPhraseValues");
}
这种映射(显然)导致以下错误:
Failed to convert parameter value from a CultureInfo to a String.
我知道NHibernate有一个类型自定义类型实现CultureInfo
(我正在使用它来映射属性),但我如何在我的映射覆盖中指定它?
美妙,我想我是太专注于明确的类型上AsMap作为目标类型,而不是源类型。谢谢! – 2011-05-06 09:33:30