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