错误CS1061:'DbSet <T>'不包含'FromSql'的定义,并且没有扩展方法'FromSql'接受类型'DbSet <T>'的第一个参数?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (355)

我试图在mac os webapi上使用asp.net core 2.1调用视图或存储过程。

using System;
using System.Linq;
using Auth.Database;
using Microsoft.EntityFrameworkCore;

public virtual IQueryable<T> ExecuteStoreProcView(string viewProcName)
{
    IQueryable<T> queryResult = _entities.Set<T>().FromSql(viewProcName).AsQueryable();
    return queryResult;
}

得到以下错误

错误CS1061:'DbSet'不包含'FromSql'的定义,并且没有可以找到接受类型'DbSet'的第一个参数的扩展方法'FromSql'(您是否缺少using指令或程序集引用?)(CS1061)

我正在使用mac os上的实体框架开发webapi。

研究以下链接中的一些查询: - 没有DbSet的原始SQL查询 - 实体框架核心

没有DbSet的原始SQL查询 - 实体框架核心

https://forums.asp.net/t/1886501.aspx?System+Data+Entity+DbSet+Entities+User+does+not+contain+a+definition+for+FirstOrDefault+

https://docs.microsoft.com/en-us/dotnet/api/microsoft.entityframeworkcore.relationalqueryableextensions.fromsql?view=efcore-2.1

但是无法找到错误解决方案。任何人都可以让我知道我,我失踪了。

提问于
用户回答回答于

在您收到此错误的文件的顶部添加此行。FromSql是一种扩展方法,在Microsoft.EntityFrameworkCore.Relational程序集中实现。

using Microsoft.EntityFrameworkCore.Relational;
用户回答回答于

自从Umer回答以来,这可能已经改变。它现在位于Microsoft.EntityFrameworkCore命名空间中。但是你需要参考这个包。

所以...

dotnet add package Microsoft.EntityFrameworkCore.Relational

并添加此行...

using Microsoft.EntityFrameworkCore;

扫码关注云+社区

领取腾讯云代金券