gpt4 book ai didi

asp.net - Entity Framework 和存储库模式的自定义异常

转载 作者:行者123 更新时间:2023-12-03 08:59:22 24 4
gpt4 key购买 nike

我按照这个 Asp .Net 教程作为指导:

http://www.asp.net/web-forms/tutorials/continuing-with-ef/using-the-entity-framework-and-the-objectdatasource-control-part-2-adding-a-business-logic-layer-and-unit-tests

我创建了一个自定义错误以防止插入和更新时出现重复记录

Public Class DuplicateAgencyException
Inherits Exception

Public Sub New(ByVal message As String)
MyBase.New(message)
End Sub
End Class

我创建了一种验证方法,用于检查插入或更新时的重复:
Public Sub ValidateAgencyName(ByVal agency As agency_temp)
If Not IsNothing(agency) Then
Dim duplicateAgency As agency_temp = AgencyRepository.GetAgencyByName(agency.agency_name).FirstOrDefault()
If Not IsNothing(duplicateAgency) AndAlso duplicateAgency.agency_id <> agency.agency_id Then
Throw New DuplicateAgencyException(String.Format("Agency: {0} already exists.", duplicateAgency.agency_name))
End If
End If
End Sub

我运行单元测试来插入一条记录,并故意插入一个重复项,它会引发正确的错误。现在我需要使用显示此数据的 ObjectDataSource 来处理此错误,例如 OnInserted 和 OnUpdated,但我什至无法达到这一点。当我插入一条记录时,错误助手告诉我 DuplicateAgencyException 未被用户代码处理。我需要尝试... catch 吗? (我确实尝试过,但无济于事)。

最佳答案

我相信您需要按照您的建议将异常包装在您在 try catch block 中提到的事件所引用的方法中。您应该像这样包装现有代码

MethodName(params)

try 《 /// existing code


catch (ExceptionType ex) 《
/// error handling code




如果您发布您的事件处理代码和我可以更具体的 aspx。请原谅我手机上写的任何错误。

关于asp.net - Entity Framework 和存储库模式的自定义异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11675357/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com