小编jus*_*uzz的帖子

.NET实体框架 - IEnumerable VS. IQueryable的

请看这行代码.这是一个存储过程的调用,它返回一个ObjectResult<long?>.为了提取长值,我添加了Select:

dbContext.FindCoursesWithKeywords(keywords).Select(l => l.Value);
Run Code Online (Sandbox Code Playgroud)

基于intellisense,这个Select返回IEnumerable<long>.

我不确定我是否在某处读过它或者只是习惯了这个假设 - 我一直认为当EF API返回IEnumerable(而不是IQueryable)时,这意味着结果已经实现.意味着他们已从数据库中撤出.

我今天发现我错了(或者这可能是个错误?).我一直收到错误

"不允许新事务,因为会话中还有其他线程在运行"

基本上,此错误告诉您在db阅读器仍在读取记录时尝试保存更改.

最终我通过(我认为是一个长镜头)解决了这个问题并增加ToArray()了实现IEnumerable<long>......

那么 - 底线 - 我应该期望IEnumerableEF的结果包含尚未实现的结果吗?如果是,那么有没有办法知道一个IEnumerable是否已实现?

如果这是'duhhh'问题之一,感谢并道歉...... :)

ienumerable frameworks entity entity-framework iqueryable

23
推荐指数
2
解决办法
2万
查看次数

.NET实体框架 - 使用.Contains()在Where表达式中查找字节值

我正在根据我从用户那里获得的参数构建一个IQueryable.其中一个参数是多选,我需要检索包含任何选定值的记录.

处理它的代码是:

var ids = parameters.DeliveryID.ToArray(); courses = courses.Where(c => ids.Contains(c.CourseDeliveryID));

在上面的代码中:
1.ids - 是一个字节数组,我确保它在调用Contains()之前有多个值.
2. c.CourseDeliveryID - 这是一个字节值.

在数据库中,我将CourseDeliveryID存储为tinyint(SQL Server 2008).

编译就好了.

当我运行代码时,我得到以下ArgumentException:
DbExpressionBinding requires an input expression with a collection ResultType.
Parameter name: input

我在这里找到了该例外的文档:http: //technet.microsoft.com/en-us/library/system.data.common.commandtrees.expressionbuilder.dbexpressionbuilder.bindas.aspx

在尝试解决问题的过程中,我发现如果我在短裤,整体或多头上使用相同的代码,我就没有任何问题.

我从昨天起就与微软就这件事情进行过接触,并会在我了解更多时更新,但与此同时我想我也会把它扔到这里,以便在可能的情况下获得更多建议.

提前致谢!

.net c# linq entity-framework entity-framework-4

19
推荐指数
1
解决办法
6265
查看次数

API标记端点错误 - min_id不是此标记的有效游标

从几天前我们收到了来自Instagram API的错误响应 - 它抱怨我们在访问Tags端点时使用了无效的游标'min_id'.

事情是我们不使用'min_id'.我们使用'min_tag_id',根据文档(不建议使用当前),它是此端点的有效游标.

做一些研究我发现有些人本周也会遇到意想不到的错误(虽然不同).

示例API请求(插入访问令牌并粘贴到浏览器中以查看):

https://api.instagram.com/v1/tags/nofilter/media/recent?access_token=<ACCESS_TOKEN>&min_tag_id=AQCvuinNA31T_hoSa-RaCsQigBknfYaBv2_VcCn1kp4MX5whyr7v7AfpOzio8E4lcQ9TZIKZbN_ZAqEmuzmslq8qMmFTQF-1ocNntqDIjlN4va4GxocNeBxmo29nXEOjKIRVvce5PuvoXk3MY9nuNd6hbxFj7TW_FEWTWpdx9FNzEQ
Run Code Online (Sandbox Code Playgroud)

并回应:

{"meta":{"error_type":"APIInvalidParametersError","code":400,"error_message":"min_id is not a valid cursor for this tag."}}
Run Code Online (Sandbox Code Playgroud)

任何的想法?

instagram instagram-api

6
推荐指数
1
解决办法
1961
查看次数