首页 > 解决方案 > Umbraco ApplicationContext.Current 为空

问题描述

我有一个 MVC 网站,我需要从 Umbraco 数据库中提取几条数据。我不需要任何 Umbraco 观点或任何类似的东西。我是 Umbraco 核心库的新手。

我所做的是从我的 Web 项目中创建对 Umbraco.core dll 的引用,并将连接字符串添加到我的 Web 配置中的 Umbraco 数据库。然后我添加了一个方法来尝试检索一些数据

public IContentType GetBenefits() {

        var contentTypeService = ApplicationContext.Current.Services.ContentTypeService;
        var benefits = contentTypeService.GetContentType("Benefits");

        return benefits;
}

ApplicationContext.Current 始终为空

我在 IIS Express 下的本地开发 PC 上运行

我需要做任何其他事情来实例化 Umbraco 连接吗?

标签: umbracoumbraco7

解决方案


ApplicationContext.Current在这种情况下将始终为空,因为ApplicationContext.Current指的是 Umbraco 应用程序的当前运行实例。为了有一个正在运行的实例,您需要配置、引导和运行完整的 Umbraco 安装。

我认为您无法Umbraco.Core单独完成此操作,并且为了连接到数据库而添加所有这些额外的库无论如何都是矫枉过正的。

如果您需要访问 Umbraco 特定的数据库内容,那么最好的选择是将Umbraco Api 控制器添加到实际的 Umbraco 实例并使用 Web API 公开您需要的数据。

您可以直接连接到数据库,但数据库已经很好地抽象和规范化,因此,除非您只需要数据库中非常具体的数据,否则这不值得付出努力。


推荐阅读