小编dot*_*ive的帖子

带有 Postgres 的 EF Core 无法翻译 Array.Contains() 查询

我有一个实体,其字段定义为 GUID 数组。我想知道 DB 中是否有一些行包含作为参数传递的值。
根据文档,我可以进行.Where(x => x.ArrayField.Contains(arg))or .Where(x => x.ArrayField.Any(f => f == arg))(也可以将 arg 包装到单元素数组中并执行.Any(f => array.Contains(f)))调用。
但实际上我得到了这个:

System.InvalidOperationException: Error generated for warning 'Microsoft.EntityFrameworkCore.Query.QueryClientEvaluationWarning: The LINQ expression 'where {[x].Ids => Contains(Id_2)}' could not be translated and will be evaluated locally.'. This exception can be suppressed or logged by passing event ID 'RelationalEventId.QueryClientEvaluationWarning' to the 'ConfigureWarnings' method in 'DbContext.OnConfiguring' or 'AddDbContext'.
Run Code Online (Sandbox Code Playgroud)

我的查询如下所示:

var entities = await context.Query<Entity>
    .Where(x => x.Ids.Contains(Id))
    .ToArrayAsync();
Run Code Online (Sandbox Code Playgroud)

为什么是错误的?或者应该有一些额外的配置? …

c# postgresql entity-framework-core

6
推荐指数
0
解决办法
923
查看次数

超大阵列

我必须使用尺寸为34000x34000项的二维数组进行数学计算.

明显的问题 - CLR不可能在内存中存储如此大的数据部分.我试图使用MemoryMappedFile,但是当我试图为对象创建查看器时它也失败了:MemoryMappedFile.CreateViewAccessor().是否还有其他已存在的存储大型数组的方法?(因为我没有太多时间尝试实现自定义大数据存储)

谢谢

c# large-data gcallowverylargeobjects

0
推荐指数
1
解决办法
534
查看次数