Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用多子句对实体框架的异步方法进行单元测试_C#_Entity Framework_Unit Testing_Entity Framework 6 - Fatal编程技术网

C# 如何使用多子句对实体框架的异步方法进行单元测试

C# 如何使用多子句对实体框架的异步方法进行单元测试,c#,entity-framework,unit-testing,entity-framework-6,C#,Entity Framework,Unit Testing,Entity Framework 6,我正在尝试在EF 6.0.2和Moq 4.0.10827中对一个异步方法进行单元测试,我遇到了一个似乎是铸造问题的问题 以下工作很好: public async Task<List<Testimonial>> GetByEventIdAsync(int eventId) { var query = from t in _context.Testimonials orderby t.Ordinal se

我正在尝试在EF 6.0.2和Moq 4.0.10827中对一个异步方法进行单元测试,我遇到了一个似乎是铸造问题的问题

以下工作很好:

public async Task<List<Testimonial>> GetByEventIdAsync(int eventId)
{
    var query = from t in _context.Testimonials
                orderby t.Ordinal
                select t;
    var result = query
        .ToListAsync()
        .ConfigureAwait(false);
    return await result;
}
为什么这个班正在消失?我该如何修复它

更新:我还发现,如果我将
where
添加回并删除
orderby
,这同样有效,因此问题似乎有多个子句。

最终找到了答案

IQueryable需要这样添加:

public class TestDbAsyncEnumerable<T> 
    : EnumerableQuery<T>, IDbAsyncEnumerable<T>, IQueryable
公共类TestDbAsyncEnumerable
:EnumerableQuery、IDBSyncEnumerable、IQueryable

谢谢你,我找错地方了,差点把它弄丢。
var q1 = _context.Testimonials; // Type = Castle.Proxies.IDbSet`1Proxy_1
var q2 = q1.Where(t => t.EventId == eventId); // Type = TestDbAsyncEnumerable`1 (from linked code)
var q3 = q2.OrderBy(o => o.Ordinal); // Type = System.Linq.EnumerableQuery`1
public class TestDbAsyncEnumerable<T> 
    : EnumerableQuery<T>, IDbAsyncEnumerable<T>, IQueryable