【问题标题】:Saving and retrieving inherited types with LINQtoSQL and Business Objects使用 LINQtoSQL 和业务对象保存和检索继承的类型
【发布时间】: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


【解决方案1】:

Rick Strahl 的页面帮助我启动并运行了我的业务层。这对您来说可能也是一个好的开始。

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

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

【讨论】:

    猜你喜欢
    • 2011-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-30
    • 2021-03-25
    • 2013-10-16
    • 2013-06-20
    • 2012-06-25
    相关资源
    最近更新 更多