1
我试图设置NHibernate获取翻译取决于巫婆languageId我提供。安装nHibernate获取翻译
我有一个类,它是这个样子:
public class Location
{
public virtual Guid Id { get; set; }
[Translate("Name")]
public virtual string Name { get; set; }
[Translate("Description")]
public virtual string Description { get; set; }
public virtual bool Popular { get; set; }
public virtual bool Active { get; set; }
}
我翻译属性看起来是这样的:
[AttributeUsage(AttributeTargets.Property)]
public class TranslateAttribute : Attribute
{
public readonly string DatabaseSuffix;
public TranslateAttribute(string databaseSuffix)
{
DatabaseSuffix = databaseSuffix;
}
public string GetSuffix()
{
return DatabaseSuffix;
}
}
我也有了解我目前使用的是什么语言一件事:
public interface ILanguageProvider
{
void SetLanguage(string language);
string GetCurrentLanguage();
}
我想设置nhibernate与约定,所以当提取anythin摹有具有转换属性应该询问对我的翻译表像这样为每个属性(或可能得到的所有翻译一次)的属性:
SELECT TOP 1 Text
FROM Translations
WHERE Id = '{Id_From_my_Entity}_DataBaseSuffixFromTheTranslationAttribute' AND
LanguageId = LanguageIdFromGetCurrentLanguageInTheImplentationOFILanguageProvider;
,并设置它回来的结果,其它获得翻译的财产。
这可能吗?我如何实现这个?
即时通讯使用NHibernate 3.3.1.4000和功能NHibernate 1.3.0.733