我有以下存储过程:
ALTER PROCEDURE [dbo].[SP_BuscarBien_servicio]
@campo varchar(50),
@numPags int,
@numRegs int
AS
BEGIN
SELECT TOP (@numRegs)
[Project1].[BS_Id] AS [BS_Id],
[Project1].[BS_Descripcion] AS [BS_Descripcion],
[Project1].[UNM_Id] AS [UNM_Id],
[Project1].[BS_CostoPromedio] AS [BS_CostoPromedio],
[Project1].[BSTIP_Id] AS [BSTIP_Id],
[Project1].[UNM_Id1] AS [UNM_Id1],
[Project1].[UNM_Descripcion] AS [UNM_Descripcion],
[Project1].[BSTIP_Id1] AS [BSTIP_Id1],
[Project1].[BSTIP_Descripcion] AS [BSTIP_Descripcion]
FROM (
SELECT [Project1].[BS_Id] AS [BS_Id],
[Project1].[BS_Descripcion] AS [BS_Descripcion],
[Project1].[UNM_Id] AS [UNM_Id],
[Project1].[BS_CostoPromedio] AS [BS_CostoPromedio],
[Project1].[BSTIP_Id] AS [BSTIP_Id],
[Project1].[UNM_Id1] AS [UNM_Id1],
[Project1].[UNM_Descripcion] AS [UNM_Descripcion],
[Project1].[BSTIP_Id1] AS [BSTIP_Id1],
[Project1].[BSTIP_Descripcion] AS [BSTIP_Descripcion],
row_number() OVER (ORDER BY [Project1].[BS_Descripcion] ASC) AS [row_number]
FROM ( SELECT
[Extent1].[BS_Id] AS [BS_Id],
[Extent1].[BS_Descripcion] AS [BS_Descripcion],
[Extent1].[UNM_Id] AS [UNM_Id],
[Extent1].[BS_CostoPromedio] AS [BS_CostoPromedio],
[Extent1].[BSTIP_Id] AS [BSTIP_Id],
[Extent2].[UNM_Id] AS [UNM_Id1],
[Extent2].[UNM_Descripcion] AS [UNM_Descripcion],
[Extent3].[BSTIP_Id] AS [BSTIP_Id1],
[Extent3].[BSTIP_Descripcion] AS [BSTIP_Descripcion]
FROM [dbo].[Bien_servicio] AS [Extent1]
INNER JOIN [dbo].[Unidad_Medida] AS [Extent2] ON [Extent1].[UNM_Id] = [Extent2].[UNM_Id]
LEFT OUTER JOIN [dbo].[Bs_tipo] AS [Extent3] ON [Extent1].[BSTIP_Id] = [Extent3].[BSTIP_Id]
WHERE [Extent1].[BS_Descripcion] like '%'+ @campo + '%'
or [Extent2].[UNM_Descripcion] like '%'+ @campo + '%'
or [Extent1].[BS_CostoPromedio] like '%'+ @campo + '%'
or [Extent3].[BSTIP_Descripcion] like '%'+ @campo + '%'
) AS [Project1]
) AS [Project1]
WHERE [Project1].[row_number] > (@numPags - 1)*@numRegs
ORDER BY [Project1].[BS_Descripcion] ASC
END
在此函数中导入:
public static List<Bien_servicio> ListarBien_servicio(int numPags, int numRegs, String campo = "")
{
try
{
using (SampleDBEntities db = new SampleDBEntities())
{
return db.BuscarBien_servicio(campo, numPags, numRegs).ToList();
}
}
catch (Exception)
{
throw;
}
}
使用以下关系
bs_tipo --< Bien_servicio >--- Unidad_Medida
当我尝试获取相关实体 (Bien_Servicio.Bs_Tipo) 时,我收到错误消息:“ObjectContext 实例已被释放,不能再用于需要连接的操作”
在 db 层,相关实体被正确映射,但在 winform 代码中,我得到了这个异常,就像我失去了连接一样。
这发生在存储过程中(如果我使用 db.Bien_Servicio.Include("Bs_tipo").ToList(); 我没有问题)。即使我将结果转换为 .ToList()。我的错误是什么?
提前致谢。