umbraco - 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 连接吗?
解决方案
ApplicationContext.Current
在这种情况下将始终为空,因为ApplicationContext.Current
指的是 Umbraco 应用程序的当前运行实例。为了有一个正在运行的实例,您需要配置、引导和运行完整的 Umbraco 安装。
我认为您无法Umbraco.Core
单独完成此操作,并且为了连接到数据库而添加所有这些额外的库无论如何都是矫枉过正的。
如果您需要访问 Umbraco 特定的数据库内容,那么最好的选择是将Umbraco Api 控制器添加到实际的 Umbraco 实例并使用 Web API 公开您需要的数据。
您可以直接连接到数据库,但数据库已经很好地抽象和规范化,因此,除非您只需要数据库中非常具体的数据,否则这不值得付出努力。
推荐阅读
- laravel - iIlluminate/mail 在工匠中不可用
- c# - 返回 System.String[] 而不是数组值
- python - 如何分配平均值并打印为整数
- elasticsearch - Elasticsearch 使用 curl 批量更新所有文档的 geo_location
- c# - 试图从 c# 中的给定堆栈跟踪中了解似乎有什么问题
- javascript - v-for 在 page.vue 中使用 axios mysql
- php - 如何从选择字段更新数据 Laravel
- plugins - 有没有办法在wordpress中添加按钮来阻止编辑器?
- python - 将 pandas 系列字符串日期格式转换为 np.datetime64 格式时的看似不一致的行为
- apache-kafka - 如何在将一条记录生成到 Kafka 时获取它的大小