我们使用实体框架将我们的实体存储在数据库中。我们使用存储库模式来包装非常复杂的Linq查询。 我们希望针对简单的内存集合对这些查询进行单元测试。这一切都很好,直到我们遇到在sql-type rowversion上排序的查询,以找到集合中最后添加的记录。 EntityFramework能够将此Linq转换为SQL。
行版本由C#转换为字节数组,因为当对象从数据库中重新水化时,它太大而无法容纳ulong(?)。
因此我们将这些字节数组添加到内存测试数据中。 但是,如果我们对内存集运行查询,则Linq爆炸,因为字节数组无法比较,因此无法执行所需的排序。
所以我们编写了一个适用于字节数组的比较器,当我们在查询中使用这个比较器时,它们在内存中工作正常。
但是现在LinqToEntities无法使用比较器处理查询。
我们似乎陷入困境22 ......
有没有人在内存和LinqToEntities中运行的解决方案?
答案 0 :(得分:0)
如果您将其与实施 <form method="post" action={% url 'delete_todo' todo_id=todo.id %}>
{% csrf_token %}
<input type="button" id="submit" value="Delete" />
</form>
...作为比较器结合起来,这似乎是一种解决方法: