你如何處理NHibernate的查找值?例如,我有一個Order實體,它有一個BillingAddress屬性,它是一個名爲Address的值對象,如果Address對象只包含State和Country屬性作爲字符串,則很簡單。但是如果我想要一個國家包含其狀態列表,則訂單表單可以填充每個選定國家的適當狀態下拉列表。如何使用NHibernate查找值?
我還可以創建Country和State作爲值對象嗎?或者他們必須是實體?如果它們是實體,Address可以作爲一個值對象嗎?
下面是我的示例的示例代碼:
public class Order
{
public virtual int OrderId { get; set; }
public virtual Address BillingAddress { get; set; }
}
public class Address
{
public virtual State State { get; set; }
public virtual Country Country { get; set; }
}
public class Country
{
public virtual string Name { get; set; }
public virtual ICollection<State> States { get; set; }
}
public class State
{
public virtual string Name { get; set; }
public virtual Country Country { get; set; }
}
你可以開車試圖模擬地址數據。郵政編碼特別艱難,因爲它們經常不遵循政治邊界。儘可能保持簡單。 –
可能是:),但我如何根據當前選定的國家填充狀態列表?我知道你們大多數人都只熟悉一個州的名單:美國的州,但我不是來自美國,我想爲幾個國家提供同樣的功能。 –
許多(大多數?)國家的地址中不包括州/省。您可以從ISO 3166國家(http://bit.ly/qKq0iB)和細分(http://bit.ly/qS88i9)代碼開始。然後訪問各個國家的郵政服務,瞭解如何格式化他們的地址。我的數據幾乎都是美國和加拿大的地址,因此我把地址視爲美國,加拿大或國際。美國和CA(鬆散地)驗證,國際地址不是。所以我有方法獲取州或省列表,具體取決於是否選擇US或CA。 –