【问题标题】:The type or namespace name 'Relational' does not exist in the namespace 'Microsoft.EntityFrameworkCore'命名空间“Microsoft.EntityFrameworkCore”中不存在类型或命名空间名称“Relational”
【发布时间】:2017-11-23 00:48:30
【问题描述】:

在 ASP.Net Core 1.1 Web 应用程序中,在 VS 2017 中,我需要引用包:
Microsoft.EntityFrameworkCore.Relational
(这是为了调用具有结果集的存储过程,如下所述: How to run stored procedures in Entity Framework Core?)

从 PM 控制台安装软件包时,使用:

Install-Package Microsoft.EntityFrameworkCore.Relational

我得到“成功安装'Microsoft.EntityFrameworkCore.Relational 1.1.2'”

但是当我添加该行时:

using Microsoft.EntityFrameworkCore.Relational;

在文件顶部,“Relational”一词下方有一个红色波浪线,并带有错误:

命名空间“Microsoft.EntityFrameworkCore”中不存在类型或命名空间名称“Relational”(您是否缺少程序集引用?)

我将问题隔离为创建“ASP.Net Core Web Application (.Net Framework)”类型的新项目,为空的 ASP.Net Core 1.1 项目选择模板,然后安装上述包。我仍然遇到同样的错误。
TIA

【问题讨论】:

    标签: asp.net-core entity-framework-core


    【解决方案1】:

    Microsoft.EntityFrameworkCore.Relational程序集。 EF Core 中没有这样的命名空间

    FromSql 方法定义在 Microsoft.EntityFrameworkCore 命名空间 RelationalQueryableExtensions 类中,因此您只需要访问它即可

    using Microsoft.EntityFrameworkCore;
    

    【讨论】:

    • 根据我链接到的 StackOverflow 帖子,为了从存储过程中检索类型化结果集,我需要使用:Microsoft.EntityFrameworkCore.Relational 程序集中的 dbContext.Set() .我确实按照我的问题中的描述安装了该程序集
    • 没错。您需要安装程序集。通过这样做,它将在上述命名空间中产生一些额外的方法。顺便说一句,链接的答案不太正确-没有Set()方法,方法是Set<T>()FromSqlIQueryable<T>的扩展方法。
    • 我建议您阅读您所指的已接受答案下的 cmets。接受和赞成并不总是意味着工作。尤其是在 EF Core 中,几乎每次构建都会发生变化:(
    • 谢谢伊万,我想我现在明白了。在我收到我的信息时,Microsoft.EntityFrameworkCore.Relational 程序集包含一个同名的命名空间,在该命名空间下是 FromSql 方法。在最新版本中,它仅将新类添加到命名空间 Microsoft.EntityFrameworkCore,这就是 FromSql 现在所在的位置。
    猜你喜欢
    • 1970-01-01
    • 2012-06-19
    • 1970-01-01
    • 2012-05-28
    • 1970-01-01
    • 1970-01-01
    • 2018-05-09
    • 2022-01-11
    • 2021-10-15
    相关资源
    最近更新 更多