【问题标题】:LINQ to SQL - Partial class to selectively change shapeLINQ to SQL - 有选择地改变形状的部分类
【发布时间】:2009-02-06 03:46:07
【问题描述】:

我有什么:

LINQ to SQL 自动生成的类,对应其 SQL 表的形状。

表 ======== 第 1 列 第 2 列

我想做的事:

扩展 TABLEA 类以包含一个新属性,该属性的相关列仅在调用特定存储过程时才会出现。存储过程的返回类型将是 TABLEA。

表 ======== 第 1 列 第 2 列 newcolumn3(总是类结构的一部分,并不总是填充)

到目前为止我做了什么:

创建了一个带有属性和列属性的分部类,在调用存储过程时起作用。进行直接表调用时,出现无效列异常。

我的问题是:

如何扩展我的 LINQ to SQL 数据类以从可能不存在的列中填充属性?

【问题讨论】:

    标签: .net linq linq-to-sql


    【解决方案1】:

    我认为这是不可能的。 LINQ to SQL 的重点是提供返回集架构和 .NET 中的对象之间的直接映射。两个不同的返回集模式,两个不同的对象。如果返回的签名不同,您就不能真正将存储过程视为返回相同的对象。它更像是“ObjectWithAdditionalInfo”。

    当您开始执行这些更复杂、不明确的映射时,您需要一个真正的 ORM 工具,例如 Microsoft Entities 或 Hibernate。

    【讨论】:

    • 说得好,LINQ 不是水晶球,它只知道当前的模式。
    • 谢谢。虽然有几种方法可以给这只猫剥皮,但我正在探索我的选择并同时学习 LINQ。 @Chris——我不需要它是一个水晶球;当映射列不存在时不要抛出异常,或者至少提供一种不同的方式来填充我的部分属性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多