【发布时间】:2010-11-23 03:07:03
【问题描述】:
从常规的 aspnet_Users 表中,我创建了两个在 UserId 上具有一对一关系的子表。
Table UserClient
-UserId int PK
-ClientNumber int
Table UserEmployee
-UserId int PK
-EmployeeNumber int
我已经在 edmx 中创建了一个 Table per Type 模型,现在希望在通过成员存储过程创建新的 aspnet_User 记录时在相应的子表中创建相应的记录,如下所示:
[HttpPost]
public ActionResult CreateUser(CreateUserModel model)
{
if (ModelState.IsValid)
{
// Attempt to create the user
MembershipCreateStatus createStatus = MembershipService.CreateUser(model.UserName, model.Password, model.Email);
if (createStatus == MembershipCreateStatus.Success)
{
//now that the aspnet_user record is created...
FilingBizEntities db = new FilingBizEntities();
//Get the role chosen for the user from selectlist on the CreateUser page
var thisrole = db.aspnet_Role.Where(rn => rn.RoleId == model.RoleId).FirstOrDefault();
//Add the user to the role
Roles.AddUserToRole(model.UserName, thisrole.RoleName);
return RedirectToAction("Index", "Users");
}
else
{
ModelState.AddModelError("", AccountValidation.ErrorCodeToString(createStatus));
}
}
ViewData["PasswordLength"] = MembershipService.MinPasswordLength;
return View(model);
}
它是“UserClient”还是“UserEmployee”类型取决于它的 RoleId,我目前在查询需要时区分它。现在我希望通过表格来扩展每种类型的属性。
假设新创建的用户是客户。
如何将一条记录插入到 UserClient 表中,它是 aspnet_Users 的 UserId 和这个 ClientNumber?
【问题讨论】:
标签: asp.net entity-framework-4 table-per-type