【发布时间】:2010-02-18 03:08:16
【问题描述】:
我有一个抽象的 EventBase 类和一些继承的事件类型,以及一个 Event 类。每种事件类型都有自己独特的列。
在我的数据层中,我有一个简单的 GetEvents 方法:
from e in db.Events
select new Event {...values...};
EventType 是一个与 EventTypes 表匹配的枚举
我希望 GetEvents(EventType type) 和 GetEvent(int id, EventType type) 做类似的事情..
from e in GetEvents()
where e.TypeId == (int)type
select new TypeSpecified {...values for Event + Type-specific fields...};
// Determine what type it is
// Switch statement? Dictionary?
我不确定开关是不是最好的主意,但我也不确定如何正确使用字典将数据检索和对象创建映射到特定类型。
我的第二个问题涉及保存数据 - 从业务对象到 L2S 表 - 基本上与上述相同的问题
我希望这是有道理的:)
【问题讨论】:
-
你已经在使用单表继承了吗? IE 你是否定义了一个包含所有可能列的表,以及一个标识每一行类型的鉴别器列?在不知道您是否已经在使用的情况下很难回答您的问题。
标签: linq linq-to-sql inheritance orm single-table-inheritance