在显示“添加”按钮之前检查DB中是否存在一行

时间:2012-04-05 08:44:13

标签: .net vb.net asp.net-mvc-3 linq razor

我有一个包含联系人的表,一个包含事件的表,以及一个将联系人链接到这些事件的表。

因此,在我看来,我选择了一个事件,我可以看到允许添加到此事件的联系人列表。

目前,可以多次为活动添加联系人。

我想在显示按钮之前检查联系人是否已添加到活动中。

以下是我的观点:

 <td>
      @Code
      Dim flag1 As Integer = 0
      flag1 = (From a In Model.trans_Event
               Where a.FK_id_contact = item.idContact And a.FK_id_Event = idEvent
               Select a.idtrans).Count()
      End Code

      @If flag1 = 0 Then
      <input type="button" value="add" />
      Else
      <input type="button" value="delete" />
      End If
 </td>

这样的代码不起作用,我真的不知道如何检查联系人是否已被添加。这是我得到的错误:

    Exception Details: System.ArgumentNullException: Value cannot be null.
    Parameter name: source

1 个答案:

答案 0 :(得分:1)

在此代码中(如果您没有复制/粘贴错误)

a.FK.id_Event = idEvent
你试图得到一个 - &gt; FK - &gt; id_event,因为模型中没有FK对象,所以它会分解为null异常。

查看应该是“a.FK_id_Event”的代码

flag1 = (From a In Model.trans_Event
               Where a.FK_id_contact = item.idContact And a.FK_id_Event = idEvent
               Select a.idtrans).Count()
      End Code

编辑:

在模型中过滤集合时我更喜欢;

Model.trans_Event.Where(a => a.FK_id_contact == item.idContact && 
                             a.FK_id_Event == idEvent)