【发布时间】:2018-04-26 19:36:18
【问题描述】:
我正在尝试使用过程来代替使用 LINQ C# 的视图和表之间的连接。但是为了在不改变整个逻辑的情况下使用过程,我试图从视图和表中使用返回类型。但我只能从表或视图中的一个对象中获取返回类型。有没有一种方法可以让我们从一个过程的多个对象中获取返回类型。下面是我为过程设置返回类型的 LINQ 代码。
[global::System.Data.Linq.Mapping.FunctionAttribute(Name="dbo.USP_Procedure")]
public ISingleResult<V_View_Object1> USP_Procedure()
{
IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())));
return ((ISingleResult<V_View_Object1>)(result.ReturnValue));//returning fields from view only I want to return from table and view both
}
我正在尝试使用 v_View_object1 从表 (Table_Object2) 中返回字段。有没有办法做到这一点? LinQ 允许这样做吗?任何建议都有帮助。
【问题讨论】:
-
这听起来不像是 LINQ 问题。你的方法的返回类型是
ISingleResult<V_View_Object1>,所以你必须返回它。如果要返回其他内容,则需要更改返回类型并在所有调用位置进行处理。另外,您的代码中的Table_Object2在哪里? -
@NetMage Table_Object2 位于视图和过程所在的同一 dbml 下。我正在从视图中获取返回类型,并且正在考虑返回表和视图字段,而不仅仅是视图。但我想那是不可能的,所以我现在必须为该过程手动定义所有返回字段。
-
你的 SQL 存储过程返回什么?
-
@NetMage 它返回视图和表中的所有字段。我修好了它。我为过程定义了所有字段,并将过程用作 Enumerable 并按预期工作。感谢您的建议。
标签: c# asp.net entity-framework linq stored-procedures