Mar*_*nHN 7 entity-framework ef-code-first
我想首先使用EF代码用于我正在使用带有存储过程的普通旧ADO.NET访问的数据库.
在我的数据库中,我有一些nvarchar(MAX)列应该映射到a和Dictionary<string, string>.
保存到数据库时,它是XML格式的字符串.我使用这种技术来允许例如在线商店中的产品名称的国际化.我不知道任何给定用户想要翻译多少种语言,所以我不能Name为每种语言提供一列.
我还想避免将值存储在一个单独的表中,所以我最终得到了Dictionary - XML方法.
我现在这样做的方法是,每当我与数据库交互时,只将这些列中的任何一个视为字符串.我有一个自定义映射器函数,可以将XML转换为字典,然后返回到XML.
但我似乎无法首先找到使用EF Code执行此操作的方法?有任何想法吗?
Wou*_*ort 14
您可以添加一个属性,该属性将返回您Dictionary<,>的XML字符串,然后删除您的Dictionary<,>属性的映射.
[NotMapped]
public Dictionary<string,string> MyDictionary
{
get; set;
}
public string DictionaryAsXml
{
get
{
return ToXml(MyDictionary);
}
set
{
MyDictionary = FromXml(value);
}
}
Run Code Online (Sandbox Code Playgroud)
如果您不想公开您的DictionaryAsXml财产,请查看此博客文章.它显示了如何持久保存私有和受保护的属性.
| 归档时间: |
|
| 查看次数: |
12615 次 |
| 最近记录: |