2008-10-08 65 views
1

我有一个用户类,它可能有也可能没有关联的部门。这是通过外键DepartmentId引用的,并且User表中的相关字段设置为允许空值。从Linq到SQL的零对多关系

当我建立了我的“创建用户”的形式,选择任何部门,我得到的SubmitChanges()冲突错误:

The INSERT statement conflicted with the FOREIGN KEY constraint "FK_User_Department". 

我怎样才能说服LINQ到SQL时插入一个空的“部门“被选为”空白“第一选项?

或者,有没有关键字我缺少的Html.DropDownList方法的“optionLabel”参数呢?我目前使用“无”,因为使用null或“”不会导致显示“空白选项”,我怀疑这可能是导致问题的原因。感谢您的帮助。

回答

1

我发现通过把在我UsersController.Create方法如下一个低于理想的解决方案:

// Snipped UpdateModel call 
if (form["User.DepartmentId"].Length == 0) 
{ 
    createdUser.DepartmentId = null; 
} 
Models.User.DataContext.SubmitChanges(); 

当然,我宁愿东西是清洁剂/自动。

0

在没有选择任何部门时,您可以在部门中输入“N/A”。那么你不会得到外键冲突。