【问题标题】:Set Return type from multiple objects for a procedure in LINQ为 LINQ 中的过程设置多个对象的返回类型
【发布时间】: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&lt;V_View_Object1&gt;,所以你必须返回它。如果要返回其他内容,则需要更改返回类型并在所有调用位置进行处理。另外,您的代码中的Table_Object2 在哪里?
  • @NetMage Table_Object2 位于视图和过程所在的同一 dbml 下。我正在从视图中获取返回类型,并且正在考虑返回表和视图字段,而不仅仅是视图。但我想那是不可能的,所以我现在必须为该过程手动定义所有返回字段。
  • 你的 SQL 存储过程返回什么?
  • @NetMage 它返回视图和表中的所有字段。我修好了它。我为过程定义了所有字段,并将过程用作 Enumerable 并按预期工作。感谢您的建议。

标签: c# asp.net entity-framework linq stored-procedures


【解决方案1】:

我假设您的存储过程中有两个输出参数。 LINQ 不支持存储过程中的表值参数,因此只能从连接表和视图的查询的结果集中检索数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多