C#w / Castle ActiveRecord
我在C#中有两个(或更多)类,我想与同一个数据库表进行交互。这两个类不共享基类,所以我不能使用Discriminator。我只想将表列分成两个(或更多)类。与JoinedTable属性的目的相反的种类。可以这样做吗?
答案 0 :(得分:1)
将几个类映射到一个表有两种策略:
继承:是的,我知道你没有它,但你也可以使用一个接口作为“基类”。在同一个表中有几个(根)类没有任何共同点是没有意义的。
组件:与join的实际相反。您可以将表的一部分放在单独的类中。在这种情况下,只有一个根实体聚合其他类。
答案 1 :(得分: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; }
}