Migrations.csでContentTypeが定義されているとしましょう
public int Create(){
ContentDefinitionManager.AlterTypeDefinition("UserWrapper", builder =>
builder
.WithPart(typeof(UserPart).Name)
.WithPart(typeof(CommonPart).Name)
.Creatable();
return 1;
}
次に、たとえば人が「サインアップ」した後にコントローラーから呼び出されるサービスがあります(ユーザーサインアップページなど)。このメソッド「CreateUserWrapper」はContentManagerを使用して新しいUserWrapperを作成します(コードは以下にあります)。
public void CreateUserWrapper(string email){
var userWrapper = orchardServices.ContentManager.New("UserWrapper");
var userPart = userWrapper.As<UserPart>();
userPart.Email = email;
userPart.UserName = email;
userPart.NormalizedUserName = email.ToLowerInvariant();
userPart.Record.HashAlgorithm = "SHA1";
userPart.Record.RegistrationStatus = UserStatus.Approved;
userPart.Record.EmailStatus = UserStatus.Approved;
orchardServices.ContentManager.Create(userWrapper);
}
上記のコードは、新しいユーザーを追加しません。管理ダッシュボードの「ユーザー」セクションに移動すると、新しいユーザーはありません。また、UserWrapperの新しいcontentTypeが追加されていません。どこが間違っているのですか、なぜこのコードはNHibernateにコールバックしてDbを更新しないのですか?
ありがとう!