【问题标题】:Join to Stored Procedure Using Entity Framework使用实体框架加入存储过程
【发布时间】:2011-12-14 19:24:29
【问题描述】:

我有一个以递归方式获取数据的存储过程。我在我的实体集中做了一个函数导入。我可以在我的 ObjectContext 中创建一个如下所示的函数:

public ObjectResult<ProviderAccountSetting> GetProviderAccountSettings(long providerAccountId)
{
    string functionName = "MyContainer.GetProviderAccountSettings";
    ObjectParameter providerAccountIdParameter = new ObjectParameter("providerAccountId", providerAccountId);
    ObjectResult<ProviderAccountSetting> results = context.ExecuteFunction<ProviderAccountSetting>(functionName, providerAccountIdParameter);
    return results;
}

但是,我无法在不出错的情况下使用 LINQ 执行连接。有没有办法告诉实体框架在我访问实体时使用存储过程?我希望我的存储过程可以在任何时候使用我为该实体获取数据。此外,我希望它与连接一起使用。 Entity Framework 是否支持这种类型的存储过程到表的映射?否则有没有办法加入函数导入?

【问题讨论】:

    标签: entity-framework stored-procedures join recursive-query


    【解决方案1】:

    您的要求都不可能。每次查询数据时都不能告诉 EF 使用存储过程。您必须手动调用您的GetProviderAccountSettings 来调用存储过程。在使用存储过程时,您也不能使用连接(在数据库端)(在 SQL 中甚至不可能直接使用)。如果您需要将任何数据加入存储过程的结果集,则必须直接在过程中完成并作为结果集返回。否则,您必须分别执行存储过程和连接查询,并将它们连接到 linq-to-objects 中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-02
      • 1970-01-01
      • 2014-01-25
      • 2013-10-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多