![](/img/trans.png)
[英]editing href in Orchard.ContentManagement.ContentItem
[英]Unable to resolve service for type OrchardCore.ContentManagement.Metadata.IContentDefinitionManager
我創建了一個 class 'ProductPart',這些實體將在 Sql DB 中創建。
public class ProductPart : ContentPart
{
public decimal UnitPrice { get; set; }
public string Sku { get; set; }
}
為了在 SQL 中表示這些實體,我們必須通過遷移 go 和 class 看起來像下面的那個
public class Migrations : DataMigration
{
private readonly IContentDefinitionManager _contentDefinitionManager;
public Migrations(IContentDefinitionManager contentDefinitionManager)
{
this._contentDefinitionManager = contentDefinitionManager;
}
public int Create()
{
CreateTable();
UpdateForm1();
return 1;
}
private void CreateTable()
{
SchemaBuilder.CreateTable(nameof(ProductPart), table => table
.Column<int>("Id", column => column.PrimaryKey().NotNull())
.Column<decimal>("UnitPrice")
.Column<string>("Sku", column => column.WithLength(50))
);
}
private void UpdateForm1()
{
_contentDefinitionManager.AlterPartDefinition(nameof(ProductPart), part =>
part.Attachable()
.WithDisplayName("Product")
.WithDescription("Add products to the content."));
}
}
在啟動 class 中,我創建了一個 scope 實例,即
public void ConfigureServices(IServiceCollection services)
{
services.AddContentPart<ProductPart>();
services.AddScoped<IDataMigration, Migrations>();
services.AddOrchardCms();
}
最后,當我運行它時,我收到以下錯誤。
*> 某些服務無法構建(驗證時出錯
服務描述符“ServiceType:OrchardCore.Data.Migration.IDataMigration Lifetime:Scoped ImplementationType:OrchardWebSiteModule.Migrations”:嘗試激活“OrchardWebSiteModule.Migrations”時無法解析“OrchardCore.ContentManagement.Metadata.IContentDefinitionManager”類型的服務。)*
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.