使用LINQtoSQL和Business Objects保存和检索继承的类型

时间:2010-02-18 03:08:16

标签: linq linq-to-sql inheritance orm single-table-inheritance

我有一个抽象的EventBase类和一些继承的事件类型,以及一个Event类。每种事件类型都有自己的唯一列。

在我的数据层中,我有一个简单的GetEvents方法:

from e in db.Events
    select new Event {...values...};

EventType是一个与EventTypes表匹配的枚举

我想要GetEvents(EventType类型)和GetEvent(int id,EventType类型)来做类似的事情。

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?

我不确定切换是最好的想法,但我也不确定如何正确使用字典将数据检索和对象创建映射到特定类型。

我的第二个问题涉及保存数据 - 从Business Object到L2S表 - 与上面相同的问题,基本上

我希望这是有道理的:)

1 个答案:

答案 0 :(得分:1)

Rick Strahl的页面帮助我完成了业务层的运行。这对你来说也是一个好的开始。

http://www.west-wind.com/weblog/posts/160237.aspx

我的主要问题是我倾向于过度设计业务层。所以必须保持简单但不简单; - )