转向FluentNhibernate

时间:2010-12-21 16:08:11

标签: fluent-nhibernate pivot

我的表结构如下:

CREATE TABLE MessageParameters 
(
    SequenceId              int                 IDENTITY(1,1) NOT NULL,
    MessageQueueId          int                 NOT NULL,
    ParameterName           varchar(50)         NOT NULL,
    ParameterValue          varchar(300)        NOT NULL,

    CONSTRAINT PK_MessageParameters PRIMARY KEY CLUSTERED(SequenceId)
)

CREATE TABLE MessageQueue
(
    SequenceId              int                 IDENTITY(1,1) NOT NULL,
    MessageType             int                 NOT NULL,
    [Status]                int                 DEFAULT(0) NOT NULL,
    Created                 datetime            DEFAULT(GETDATE()) NOT NULL,
    Modified                datetime            DEFAULT(GETDATE()) NOT NULL,

    CONSTRAINT PK_MessageQueue PRIMARY KEY CLUSTERED(SequenceId)
)

我想要做的是使用基于MessageType的子类为我的对象模型。这很简单,但我想将参数集合转移到我的子类的实际属性中。

例如,我有(子)类ActivationEmail

public class ActivationEmail : MessageBase
{
    //shared properties are member of base class

    public string Param1 {get; set;}
    public string Param2 {get; set;}
    public string Param3 {get; set;}
}

将导致上面的MessageParameters表格中的数据如此

ParameterName                              ParameterValue
------------------------------------------ ---------------------------------
Param1                                     value1
Param2                                     value2
Param3                                     value3

据我所知,我可以将一个List作为params对象的一部分,并让属性(Param1,Param2等)自动添加/更新/检索此列表中的数据,但我希望能处理一些事情在映射本身内。

0 个答案:

没有答案