1

作为 ServiceStack 的一个非常基本的用户,我尝试尝试一下,但有几件事我似乎无法正确理解......

我使用此代码是为了使用 NHibernate 作为 ServiceStack 身份验证中的数据层:

https://gist.github.com/balexandre/f1217ae8e2a2b1045d47

我已经修改了一点CreateUserAuth以在我自己的表中创建一个新用户(因为我确实需要更多的用户数据并且元数据选项还不够),我已经在第 201 行扩展到此代码:

https://gist.github.com/balexandre/f1217ae8e2a2b1045d47#file-customuserauthrepository-cs-L201

newUser被发回,我确实需要获取 userId ( newUser.Id),这样我就可以在我的表中创建一个具有与 UserAuth 相同的 userID 的新用户(以便在 CustomUserSession.cs 中正确保存/编辑并填充我的用户登录信息,如几个示例所示)。

如何获得正确的用户 ID?

我真的认为我可以将 UserAuth 对象附加到我的自定义用户(如(newLocalUser.UserAuthInfo)),但我最终总是在数据库中拥有 User.Id == 0

并接听电话newUser.IdSession.Save(new UserAuthNHibernate(newUser))总是0如此。

你们如何将新生成的 UserAuth 的 UserId 附加到您自己的表中?或者您只是使用电子邮件地址?


原始问题可用Google Groups

4

1 回答 1

0

我在设置属性的CreateUserAuth方法中没有看到任何代码。newUser.Id也许像...

var newUserAuthNhibernate = new UserAuthNHibernate(newUser);
Session.Save(newUserAuthNhibernate);
newUser.Id = newUserAuthNhibernate.Id; 

需要吗?根据 gist 中的当前代码,看起来 NHibernate 会将 Id 字段设置在在其中创建的 UserAuthNHibernate 的新实例上,Session.Save()但我看不到该 Id(将由 DB/NHibernate 生成)将基于回到该方法newUser返回的当前实例CreateUserAuth。也许它发生在 UserAuthNHibernate 类中?

于 2014-08-28T02:47:33.940 回答