0

假设我在 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 内容类型。我哪里出错了,为什么这段代码不回调到 NHibernate 并更新 Db?

谢谢!

4

1 回答 1

0

好的,上面的代码有效。事情是这样的,我实际上觉得我的 VS2010 有点错误,所以我重新安装了 SP1,在再次运行这段完全相同的代码后它就可以工作了。您可以完全按照上述方式从 ContentManager.Create 更新 ContentTypes。

于 2012-06-19T20:52:30.670 回答