【问题标题】:Can't find DbContext when using Elastic Database Client library, EF and Identity使用弹性数据库客户端库、EF 和 Identity 时找不到 DbContext
【发布时间】:2017-05-16 21:25:19
【问题描述】:

我正在尝试创建一个使用 EntityFramework、Identity 和 Elastic Database Client 的 MVC WebApp。

我已经阅读了Microsoft example here,其中大部分内容都很有意义。但是,当我创建自己的 MVC 项目,然后添加包含 EF、身份实体和弹性客户端的 DAL 项目时,我无法运行 enable-migrations 脚本。

我已确保我的包管理器控制台指向正确的 DAL 项目,并且我的上下文继承了 DbContext。所以看到这个错误信息我有点难过:

PM> enable-migrations
No context type was found in the assembly 'LeadEngine.Data'.
PM> 

有没有人能够让这 3 个框架一起工作,或者知道为什么它找不到我的上下文?

附:所有分片的代码几乎是微软示例的副本。

【问题讨论】:

    标签: c# .net asp.net-mvc entity-framework azure


    【解决方案1】:

    下载示例代码后,发现示例中的上下文类型是泛型类型。我们知道泛型类型是开放类型,我们不能直接从泛型类型创建实例,除非我们将类型参数附加到它。

    在程序集“LeadEngine.Data”中未找到上下文类型。

    要使用数据迁移,您可以重新创建一个不能是泛型类型的新上下文类型。以下代码供您参考。

    public class NewElasticScaleContext : ElasticScaleContext<int>
    {
        public NewElasticScaleContext() : base("put connection string here")
        {
        }
    }
    

    【讨论】:

    • 感谢您为我解决了这个问题。但是,如果您运行脚本,示例解决方案无法创建自己的迁移,这很奇怪。让我们想知道这是一个有效的示例,以及它如何真正与数据库池一起使用。
    【解决方案2】:
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-07
    • 2018-12-31
    • 1970-01-01
    相关资源
    最近更新 更多