将可以为空的值放入tableadapters中 - 有更好的方法吗?

时间:2016-02-25 10:01:37

标签: c# nullable tableadapter

我发现自己做了很多事情:

if (groupid.HasValue)
{
    row.GroupId = group.Value;
}
else
{
    row.SetGroupIdNull();
}

有没有更好的方法来做到这一点(有超载等),以便我不会在整个项目中重复这几百次?

2 个答案:

答案 0 :(得分:0)

这个怎么样:

row.GroupId = groupid.HasValue ? group.Value : null;

或者更好的是这样:

row.SetGroupId(group);

其中SetGroupId可以定义为Row类的扩展方法(如果您无权访问它):

public void SetGroupId(Group group){
   if (groupid.HasValue)
   {
       row.GroupId = group.Value;
   }
   else
   {
       row.SetGroupIdNull();
   }
} 

SetGroupIdNull()方法做什么?

答案 1 :(得分:0)

您仍然需要在任何地方进行编辑,但以下代码稍微清晰一些:

row.GroupId = groupid ?? [what ever SetGroupIdNull() does];

虽然如果row.GroupId可以为空,你应该能够做到:

row.GroupId = groupid;