activerecord有两个相似的表

时间:2015-05-19 14:52:38

标签: c# interface abstract-class castle-activerecord

我的数据库上有两个表。它们看起来像这样(这只是一个简单的例子,代码中可能存在错误)

create table Person
(
   id int,
   name nvarchar(50),
   surname nvarchar(50),
   street nvarchar(50),
   city nvarchar(50)
)

create table Organisation
(
   id int,
   name nvarchar(50),
   contact int Foreign Key Person(Id)
   street nvarchar(50),
   city nvarchar(50)
)

现在我要创建我的ActiveRecord类。但是大约90%的列具有相同的信息。有没有办法创建一个抽象的ActiveRecord类/接口,我保存我的重复信息?类似的东西:

[ActiveRecord]
public abstract class / interface Customer
{
    [PrimaryKey(Generator = PrimaryKeyType.Identity)]
    long Id { get; set; }

    [Property]
    string name { get; set; }

    [Property]
    string street { get; set; }

    [Property]
    string city { get; set; }
}

[ActiveRecord (Table = "Person")]
public class Person : Customer
{   
    [Property]
    public string surname { get; set; }
}

[ActiveRecord (Table = "Organisation")]
public class Organisation : Customer
{   
    [BelongsTo(Column = "contact", ForeignKey = "FK_Person_Contact")]
    public Person Contact { get; set; }
}

1 个答案:

答案 0 :(得分:0)