我正在使用 SimpleMembership 提供程序并添加要在注册时保存的其他字段。
为了在注册时保存其他字段,我使用到处使用的方法,例如使用 MVC 4、SimpleMembershipProvider、SimpleRoleProvider、Entity Framework 5 CodeFirst 和 Custom User Properties 的种子用户和角色。
我使用在我的 HttpPost ActionResult Register 方法中调用的以下 SimpleMembership 提供程序方法。
WebSecurity.CreateUserAndAccount(registerModel.UserName, registerModel.Password,
new { FirstName = registerModel.FirstName, LastName = registerModel.LastName, CompanyName = registerModel.CompanyName});
附加字段由对象类型的按值方法参数添加。对此的描述是“包含附加用户属性的字典”
这可行,但我安装了 JetBrains ReSharper 8,并且对于属性名称,我收到“冗余显式属性名称”警告。
要删除警告,我将代码更改为:
WebSecurity.CreateUserAndAccount(registerModel.UserName, registerModel.Password,
new { registerModel.FirstName, registerModel.LastName, registerModel.CompanyName});
我的问题是:
1)对于这个匿名对象参数,我现在删除了属性名称,因此我不再收到 Resharper 警告,它如何知道属性名称将用于匹配 db 属性类,因为它们是按值传递的?
2)有或没有属性名称的最佳实践是什么。不包含它们不是很可读,并且在代码示例中指定了它们,所以我想将它们包含在可读性而不是删除它更好。