C#W /城堡ActiveRecord的可以在多個類別中的ActiveRecord/NHibernate的共享一個數據庫表
我在C#兩個(或更多)班,我想用同一個數據庫表進行交互。這兩個類不共享基類,所以我不能使用判別器。我只想將表列分爲兩個(或更多)類。與JoinedTable屬性的目的相反。這可以做到嗎?
C#W /城堡ActiveRecord的可以在多個類別中的ActiveRecord/NHibernate的共享一個數據庫表
我在C#兩個(或更多)班,我想用同一個數據庫表進行交互。這兩個類不共享基類,所以我不能使用判別器。我只想將表列分爲兩個(或更多)類。與JoinedTable屬性的目的相反。這可以做到嗎?
爲了擴大對我的評論,則可以順理成章地組中的活動記錄對象的列通過繼承多個接口...
interface IPerson
{
string FirstName { get; set; }
string LastName { get; set; }
}
interface IAddress
{
string AddressLine1 { get; set; }
string AddressLine2 { get; set; }
string City { get; set; }
string Province { get; set; }
string Country { get; set; }
}
class CustomerRecord : IPerson, IAddress // ActiveRecord object map to table...
{
// IPerson members...
public string FirstName { get; set; }
public string LastName { get; set; }
// IAddress members...
public string AddressLine1 { get; set; }
public string AddressLine2 { get; set; }
public string City { get; set; }
public string Province { get; set; }
public string Country { get; set; }
}
有兩種策略,對幾類映射到一個表:
繼承:是的,我知道你沒有它,但你也可以使用一個接口作爲「基礎類」。在同一個表中有幾個(根)類沒有任何共同點是沒有意義的。
零部件:與實際相反的加入。您可以將表格的各個部分分開放置。在這種情況下,只有一個聚合其他類的根實體。
感謝您的回答,這絕對有用 - 即使我決定採用MattDavey提供的解決方案 – KBoek 2011-03-23 11:29:49
你能有代表表中的單個類,並使其實現多個接口邏輯分割列? – MattDavey 2011-03-23 08:44:29
@MattDavey好想法,我會嘗試 - 我真的很喜歡你能夠看到問題背後的問題。 – KBoek 2011-03-23 09:07:53