나는 마녀 언어에 따라 번역을 얻기 위해 NHibernate를 설정하려고합니다. 제공합니다. 나는 또한 내가 현재 사용하고 어떤 언어를 알고있는 것은이번역을 얻으려면 nHibernate를 설정하십시오
[AttributeUsage(AttributeTargets.Property)]
public class TranslateAttribute : Attribute
{
public readonly string DatabaseSuffix;
public TranslateAttribute(string databaseSuffix)
{
DatabaseSuffix = databaseSuffix;
}
public string GetSuffix()
{
return DatabaseSuffix;
}
}
:
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; }
}
는 특성은 다음과 같습니다 번역 내 :
나는 다음과 같이 보일 클래스가
public interface ILanguageProvider
{
void SetLanguage(string language);
string GetCurrentLanguage();
}
아무튼을 페치 할 때 규칙을 사용하여 nhibernate를 설정하고 싶습니다. 그것은 (한 번에 모든 번역을 얻을 어쩌면 나) 각 속성에 대해 다음과 같이 내 번역 테이블에 대해 쿼리해야 번역 - 속성이 속성이 g :
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