Я пытаюсь создать модульный тест для контекста, который имеет 3 объекта. Я начал с Тестирование с помощью фреймворка , используя раздел «Тестирование сценария запросов ios». Здесь слишком много кода, чтобы включить его, поэтому, пожалуйста, обратитесь к статье, и мой код в значительной степени похож на изложенный там. Кажется, что в основном статья содержит одну сущность, я продублировал код для трех моих сущностей. Модульный тест, кажется, работает для первой сущности, но когда я пытаюсь выполнить запрос вроде:
var account = await DbContext.Accounts
.Where(a => a.AccountId == accountIdGuid)
.FirstOrDefaultAsync()
.ConfigureAwait(false);
, где я делаю запрос, чтобы вернуть учетную запись с заданным идентификатором. Этот запрос вызывает исключение:
System.ArgumentException: выражение типа
'System.Linq.EnumerableQuery 1[SubHub.Zoabl.DataAccess.Changepoint.CreditCard]' cannot be used for parameter of type 'System.Linq.IQueryable
1 [SubHub.Zoabl.DataAccess.Changepoint.Account]' метода 'System.Linq.IQueryable 1[SubHub.Zoabl.DataAccess.Changepoint.Account] Where[Account](System.Linq.IQueryable
1 [SubHub.Zoabl.DataAccess.Changepoint.Account], System.Linq.Expressions.Expression 1[System.Func
2 [SubHub.Zoabl.DataAccess.Changepoint.Account, System.Boolean] ]) '
Я не уверен, как расшифровать это исключение. Подробности исключения упоминают CreditCard
. Единственная ссылка на CreditCard
в сущности Account
- это свойство навигации.
Сущность Account
выглядит следующим образом:
[Table("Account")]
public partial class Account
{
public Guid AccountId { get; set; }
public Guid CreditCardId { get; set; }
public virtual CreditCard CreditCard { get; set; }
}
Я использую Entity Framework 6.4, если это имеет значение.
Итак, главный вопрос сейчас: «Как мне расшифровать это исключение?»