gpt4 book ai didi

c# - 使用 EF 立即执行

转载 作者:太空宇宙 更新时间:2023-11-03 11:16:21 31 4
gpt4 key购买 nike

我有这段代码执行通过 EF EDM 映射的存储过程。

meTest<MCTEntities, ObjectResult<retrieveMedia_Result>>(u => u.retrieveMedia(campaign_id: 1), ConnectionResolver.MCT_DB_Connection);

方法:

public static TValue meTest<U, TValue>(Func<U, TValue> func, String connection)
where U : ObjectContext, new()
{
using (U entitiesContext = (U)Activator.CreateInstance(typeof(U), new[] { connection }))
{
return func(entitiesContext);
}
}

问题是 retrieveMedia 返回 ObjectResult<retrieveMedia_Result>这是通过导致错误的延迟执行完成的:Calling 'Read' when the data reader is closed is not a valid operation.

现在,我知道我可以调用 ToList() 或 ToArray(),但是还有其他方法可以强制立即执行吗?

我不确定类型转换 ObjectResult<retrieveMedia_Result>List<retrieveMedia_Result>是正确的做法。

最佳答案

ToList 和 ToArray 都枚举了导致执行查询的集合。AsEnumrable 完成了查询构建(即您不能再向查询中添加位)但在枚举集合之前它不会实际执行。

在您的示例中,枚举您的集合的任何操作都将检索数据。例如 foreach。

关于c# - 使用 EF 立即执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12554713/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com