2009-09-10 35 views
5

Tôi muốn thêm hỗ trợ bản địa hóa vào đối tượng miền của mình. Tôi có những điều sau đây:Các bảng NHibernate/Localization/Lookup

class Person 
{ 
    int Id; 
    City city; 
} 

class City 
{ 
    int Id; 
    string Name; 
} 

Tất cả các thành phố được lưu trong bảng db tra cứu Cities. Tôi muốn có:

Person p = PeopleService.GetPersonById(1); 
//Assert p.City.Name == 'London' if culture == 'en-us' 

Tôi không thích làm

string City::Name { get { return ILocalizationProvider.Get(typeof(City), Id); } 

tôi đến bởi bài viết này:

http://ayende.com/Blog/archive/2006/12/26/LocalizingNHibernateContextualParameters.aspx

Tuy nhiên, tôi không biết liệu nó hỗ trợ trong NH 2.1 hoặc không phải.

Làm cách nào tôi có thể hướng dẫn NH lưu vào bộ nhớ cache tất cả các thành phố trong bộ nhớ cache cấp 2 để tránh tham gia mỗi lần cho cùng một ngôn ngữ?

Có cách nào dễ dàng và gọn gàng để xử lý các bảng tra cứu cơ sở dữ liệu và bản địa hóa trong NHibernate không?

Trả lời

3

Trong bài viết có nội dung "Xin lưu ý rằng hành vi này không còn được hỗ trợ trong NHibernate 2.1 trở lên. Đó là một bản hack bắt đầu và không đảm bảo tiếp tục hoạt động".

Vì vậy, điều này sẽ không hoạt động trong trường hợp của bạn. Tôi muốn giới thiệu điều này: http://nhforge.org/wikis/howtonh/localization-techniques.aspx

Các vấn đề liên quan