相关疑难解决方法(0)

内部.NET Framework数据提供程序错误1025

IQueryable<Organization> query = context.Organizations;

Func<Reservation, bool> predicate = r => !r.IsDeleted;

query.Select(o => new { 
    Reservations = o.Reservations.Where(predicate)
}).ToList();
Run Code Online (Sandbox Code Playgroud)

此查询引发"内部.NET Framework数据提供程序错误1025"异常,但下面的查询不会.

query.Select(o => new { 
    Reservations = o.Reservations.Where( r => !r.IsDeleted)
}).ToList();
Run Code Online (Sandbox Code Playgroud)

我需要使用第一个,因为我需要检查一些if语句来构造正确的谓词.我知道在这种情况下我不能使用if语句,这就是我将委托作为参数传递的原因.

如何使第一个查询起作用?

.net c# entity-framework expression-trees entity-framework-4

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

将func作为Linq中的参数传递给实体和"内部.NET Framework数据提供程序错误1025"错误

我们有一个名为Task的类:

public partial class Task : EntityObject
{
    public EntityCollection<TaskUser> TaskUsers { get {...} set{...} } 
}
Run Code Online (Sandbox Code Playgroud)

它有一个名为TaskUsers的导航属性,其中包含附加到此taks的用户:

public partial class TaskUser : EntityObject
{
    public User User { get {...} set {  } }
}
Run Code Online (Sandbox Code Playgroud)

每个TaskUser对象都有User对象.

我们得到了IQueryable<Task> tasks.我们希望找到分配给ID = 1的用户的任务.当我们使用时

tasks.Where(t => t.TaskUsers.Any(a => a.User.ID == 1))
Run Code Online (Sandbox Code Playgroud)

一切正常.当我们使用

Func<TaskUser, bool> function = a => a.User.ID == 1;
return tasks.Where(t => t.TaskUsers.Any(function));
Run Code Online (Sandbox Code Playgroud)

我们得到了很好的'Internal .NET Framework Data Provider error 1025'错误 为什么?我想使用Expression类构建更复杂的过滤器,但如果我不能通过简单Func,则无法完成.我该怎么办?

编辑

也许 …

lambda linq-to-entities entity-framework

18
推荐指数
1
解决办法
5325
查看次数

如何知道Linq To SQL中的字段是否为数字

我需要选择列值为数字的表格行,任何帮助?

编辑:我有一个varchar列,我需要选择那些数字和那些不是.

编辑2:Integer.TryParse无法使用,因为它无法转换为SQL.

c# sql-server linq-to-sql

9
推荐指数
3
解决办法
1万
查看次数

转换LINQ表达式会引发"内部.NET Framework数据提供程序错误1025".

以下代码:

model.Items = dbQuery.Select(c => new Item {
    Total = c.Items.Count((Func<Item, bool>)(t => t.Amount.HasValue))
}).ToArray();
Run Code Online (Sandbox Code Playgroud)

引发以下异常:

内部.NET Framework数据提供程序错误1025.

但是,确切的代码减去演员表:

model.Items = dbQuery.Select(c => new Item {
    Total = c.Items.Count(t => t.Amount.HasValue)
}).ToArray();
Run Code Online (Sandbox Code Playgroud)

注意:dbQuery只是一个EF ObjectQuery.

Count()is 的预期类型Func<Item, bool>,甚至由ReSharper验证它们是相同的类型,因为它灰化了抛出,表明它不是必需的,它们在功能上是等价的.

但是,例外证明它们实际上并不是功能相同的.

另外,我确实看到了这个相关的问题/答案,但是Count()(在这种情况下,无论如何)都不会接受Expression<Func<Item bool>>,所以这对我不起作用.

c# linq entity-framework

5
推荐指数
1
解决办法
3139
查看次数