我的表结构如下:
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等)自动添加/更新/检索此列表中的数据,但我希望能处理一些事情在映射本身内。