我有什么:
LINQ to SQL自动生成的类,它对应于其SQL表的形状。
TABLEA ======== column1 column2
我想做什么:
扩展TABLEA类以包含一个新属性,只有在调用特定存储过程时才会出现其相关列。存储过程返回类型将为TABLEA。
TABLEA ======== column1 column2 newcolumn3 (always part of the class structure, not always populated)
到目前为止我做了什么:
使用属性和columnattribute创建一个部分类,该类在调用存储过程时有效。当进行直接表调用时,我得到一个无效的列异常。
我的问题是:
如何扩展LINQ to SQL数据类以从列中填充可能不存在的属性?
答案 0 :(得分:2)
我认为这是不可能的。 LINQ to SQL的要点是在.NET中提供返回集模式和对象之间的直接映射。两个不同的返回集模式,两个不同的对象。如果返回的签名不同,则无法将存储过程视为返回相同的对象。它更像是“ObjectWithAdditionalInfo”。
当您开始执行这些更复杂,模糊的映射时,您需要一个真正的ORM工具,如Microsoft Entities或Hibernate。