新しいモジュールを開発しました。以下のハンドラーのコードを追加し、ダッシュボードで新しい contentType から 1 つのコンテンツを作成してフォームを送信すると、エラーが発生します。ハンドラーを削除するか、エラーは修正されたが、データベースに保存されたデータの一部が保存されていないことをコメントします。
確認したところ、移行は正常に実行され、テーブルは正常に作成されました。ここに私のモデル、記録、部品コードがあります。ありがとう...
// MyModulePart.cs
using System;
using Orchard.ContentManagement;
namespace www.MyModule.com.Models {
public class MyModule : ContentPart<MyModuleRecord> {
public string Name { get { return Record.Name; } set { Record.Name = value; } }
public string ImdbRate { get { return Record.ImdbRate; } set { Record.ImdbRate = value; } }
}
}
// MyModulePartRecord.cs
using System;
using Orchard.ContentManagement.Records;
namespace www.MyModule.com.Models
{
public class MyModulePartRecord : ContentPartRecord
{
public virtual string Name { get; set; }
public virtual string ImdbRate { get; set; }
}
}
// Migration Code
SchemaBuilder.CreateTable("MyModulePartRecord", table => table
.ContentPartRecord()
.Column<string>("Name")
.Column<string>("ImdbRate"));
// Handler Code
using Orchard.ContentManagement.Handlers;
using Orchard.Data;
using www.MyModule.com.Models;
namespace www.MyModule.com.Handlers {
public class MyModuleHandler : ContentHandler
{
public MyModuleHandler(IRepository<MyModulePartRecord> MyModulePartRepository)
{
Filters.Add(StorageFilter.For(MyModulePartRepository));
}
}
}
エラー:
Orchard.ContentManagement.Records.ContentItemRecord エントリの null id (例外が発生した後にセッションをフラッシュしないでください)
私を導いてください。下手な英語ですみません。ありがとう...