2011-03-23 37 views
0

C#W /城堡ActiveRecord的可以在多个类别中的ActiveRecord/NHibernate的共享一个数据库表

我在C#两个(或更多)班,我想用同一个数据库表进行交互。这两个类不共享基类,所以我不能使用判别器。我只想将表列分为两个(或更多)类。与JoinedTable属性的目的相反。这可以做到吗?

+1

你能有代表表中的单个类,并使其实现多个接口逻辑分割列? – MattDavey 2011-03-23 08:44:29

+0

@MattDavey好想法,我会尝试 - 我真的很喜欢你能够看到问题背后的问题。 – KBoek 2011-03-23 09:07:53

回答

1

为了扩大对我的评论,则可以顺理成章地组中的活动记录对象的列通过继承多个接口...

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; } 
} 
1

有两种策略,对几类映射到一个表:

继承:是的,我知道你没有它,但你也可以使用一个接口作为“基础类”。在同一个表中有几个(根)类没有任何共同点是没有意义的。

零部件:与实际相反的加入。您可以将表格的各个部分分开放置。在这种情况下,只有一个聚合其他类的根实体。

+0

感谢您的回答,这绝对有用 - 即使我决定采用MattDavey提供的解决方案 – KBoek 2011-03-23 11:29:49

相关问题