«FromSqlRaw или FromSqlInterpolated вызывается с несложным SQL и с составлением запроса по нему» при использовании OwnsOne () - PullRequest
0 голосов
/ 07 апреля 2020

У меня есть несколько хранимых процедур, которые я использую для поиска в базе данных. Каждое возвращает несколько полей, связанных с количеством найденных / возвращенных данных. Модели выглядят так:

// simplified
public abstract class SearchResult {
  public int RowCount { get; set; }
  public int FilteredRowCount { get; set; }
  // other properties
}

public class FooSearch {
  public string Id { get; set; }
  public string Foo { get; set; }
  public SearchResult Result { get; set; }
}

Затем в DBContext я использую OwnsOne() для связывания классов, согласно этому руководству по MS

public DbSet<FooSearch> FooSearch { get; set; }

// OnModelCreating
builder.Entity<FooSearch>().OwnsOne(t => t.Result);

Наконец, я делаю вызов SP:

var searchResult = db.FooSearch.FromSqlRaw("EXECUTE [Search].[Foo] {0}, {1}", foo, bar).ToList();

Однако этот последний шаг дает мне следующую ошибку:

System.InvalidOperationException: 'FromSqlRaw или FromSqlInterpolated был вызван с не- composable SQL и с составлением запроса по нему. Рассмотрите возможность вызова AsEnumerable после метода FromSqlRaw или FromSqlInterpolated для выполнения композиции на стороне клиента. '

Изменение ToList() на AsEnumerable() не влияет на результат.

Если я удаляю свойства OwnsOne() и Result из класса FooSearch, тогда SP работает, и я получаю результаты. В чем причина этой проблемы и как я могу ее исправить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...