EntityFramework Core ClassLibrary Project из SQL не работает

Шаг:1 Создан проект библиотеки классов

Шаг 2

public class DbContextFactory : IDesignTimeDbContextFactory<MyContext>
{
    public MyContext CreateDbContext(string[] args)
    {
        var optionsBuilder = new DbContextOptionsBuilder<MyContext>();

        return new MyContext(optionsBuilder.Options);
    }
}

Шаг 3

public class MyContext : DbContext
{
    public MyContext()
    {
    }

    public MyContext(DbContextOptions<MyContext> options)
        : base(options)
    {
    }

    //Proc Results
    public DbSet<SearchResult> SearchResults { get; set; }
}

Шаг:4 ==> Создана модель для SearchResult.

public class SearchResult
{
    [Key]
    public int Id { get; set; }
    [Required]
    public string Title { get; set; }
}

Шаг: 5 ==> Создан репозиторий

public class SearchRepository  : BaseRepository
{
    public SearchRepository(MyContext context) : base(context)
    {

    }

    public async Task<IEnumerable<SearchResult>> GetSearchByIdAsync(int id)
    {

        SqlParameter param = new SqlParameter() {
                            ParameterName = "@Id",
                            SqlDbType =  System.Data.SqlDbType.Int,
                            Direction = System.Data.ParameterDirection.Input,
                            Value = id
        };

        var result = await _ocmsContext.SearchResults.FromSql("ProcName @Id", param).ToListAsync();
        return result;
    }
}

Шаг: 6 ==> В базовом проекте Asp.Net webapi добавлена ​​ссылка на проект библиотеки классов.

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

        var connection = Configuration["ConnectionStrings:MyConnectionString"];
        services.AddDbContext<OCMSContext>(options => options.UseSqlServer(connection));

        services.AddScoped<ISearchRepository, SearchRepository>();
    }

Выполнив весь приведенный выше код, я получаю ошибку компиляции на шаге 5 для FromSql (сообщение об ошибке приведено ниже)

Ошибка CS1061 "DbSet" не содержит определения "FromSql", и невозможно найти доступный метод расширения "FromSql", принимающий первый аргумент типа "DbSet" (вы пропустили директиву using или ссылку на сборку?)

Обратите внимание: если я переместлю SearchRepository в проект Web.Api Core, FromSql не будет отображать никаких ошибок, он будет работать нормально.

Пожалуйста, совет, что я пропускаю.

0 ответов

Другие вопросы по тегам