метод 'Microsoft.EntityFrameworkCore.RelationalQueryableExtensions.From Sql' в настоящее время не поддерживается - PullRequest
1 голос
/ 25 февраля 2020

У меня есть один метод, как показано ниже -

public string SomeMethod() {

    var resultfromdb = from u in dbContext.TableOne.FromSql("Some select query here")
    join rm in dbContext.TableTwo on u.Id equals rm.FId
    select new SomeObject() {
        /* returning some prperty */
    };

    //some business code here
    return someresult;
}

Теперь, когда я пишу модульный тест для этого метода с использованием Xunit, я сталкиваюсь с ошибкой ниже при From Sql method

Ошибка:

Не удалось разобрать значение выражения '(Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryable`1 [TableOne]). От Sql (значение (Microsoft.EntityFrameworkCore.RawSqlString) ), __p_0) ': эта перегрузка метода' Microsoft.EntityFrameworkCore.RelationalQueryableExtensions.From Sql 'в настоящее время не поддерживается.

Метод тестирования

[Fact]
public void Test_Method()
{
 using (var context = new dbContext())
 {
  //Arrange
   PrefillData(context);//In this method i wll add some dummy data to dbcontext
   //some mocking for other code 

   //Act
   var result = SomeMethod();

   //Assert
   Assert.Equal(expectedString, result);

}

Ответы [ 2 ]

3 голосов
/ 25 февраля 2020

Кажется, вы используете базу данных в памяти. Поскольку это не настоящая база данных, вы не можете использовать метод From SQL.

1 голос
/ 25 февраля 2020

Измените FromSql на FromSqlRaw

dbContext.TableOne.FromSqlRaw("Some select query here")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...