分配私有 属性 值
Assigning Private Property values
我正在测试 PetaPoco 以确定它是否满足我们的需求。我的印象是它会深入研究我的 class 并查看我标记为有效列的私有属性。不幸的是,它的行为并不像预期的那样。你能不能看一下,如果我做错了什么,请告诉我。
我的测试class:
Imports PetaPoco
<PetaPoco.TableName("PaulTest")>
<PetaPoco.PrimaryKey("ID")>
Public Class PaulTest
<PetaPoco.Column("ID")>
Private Property pvtID As Integer
Private pvtName As String
Private Sub New()
End Sub
Public Sub New(name As String)
If String.IsNullOrEmpty(name) Then
Throw New ArgumentException("Passed Name is empty")
End If
Me.pvtName = name
End Sub
<PetaPoco.Ignore>
Public ReadOnly Property ID As Integer
Get
Return pvtID
End Get
End Property
<PetaPoco.Column("Name")>
Public Property Name As String
Get
Return pvtName
End Get
Set(value As String)
If String.IsNullOrEmpty(value) Then
Throw New ArgumentException("Passed Name is empty")
End If
Me.pvtName = value
End Set
End Property
End Class
调用DB(_db是一个PetaPoco数据库对象)
Return (_db.Fetch(Of Peta.Domain.PaulTest)(";EXEC selAllPaulTest")).OrderBy(Function(PaulTest) (PaulTest.ID)).ToList()
数据库中有什么
ID Name
107 Paul
返回的内容:
PaulTest.ID = 0
PaulTest.pvtID = 0
PaulTest.Name = "Paul"
PaulTest.pvtName = "Paul"
<PetaPoco.Ignore>
属性指示 PetaPoco
在映射期间忽略该列。因此,属性 Id
将始终返回默认值 0。
如果要防止Id
属性被修改,注释我们的或者删除属性,然后在Id
[=21]中添加一个privatesetter =] 如以下代码片段所示。
' <PetaPoco.Ignore>
Public Property Id As Integer
Get
Return pvtID
End Get
Private Set(value As Integer)
pvtID = value
End Set
End Property
我正在测试 PetaPoco 以确定它是否满足我们的需求。我的印象是它会深入研究我的 class 并查看我标记为有效列的私有属性。不幸的是,它的行为并不像预期的那样。你能不能看一下,如果我做错了什么,请告诉我。
我的测试class:
Imports PetaPoco
<PetaPoco.TableName("PaulTest")>
<PetaPoco.PrimaryKey("ID")>
Public Class PaulTest
<PetaPoco.Column("ID")>
Private Property pvtID As Integer
Private pvtName As String
Private Sub New()
End Sub
Public Sub New(name As String)
If String.IsNullOrEmpty(name) Then
Throw New ArgumentException("Passed Name is empty")
End If
Me.pvtName = name
End Sub
<PetaPoco.Ignore>
Public ReadOnly Property ID As Integer
Get
Return pvtID
End Get
End Property
<PetaPoco.Column("Name")>
Public Property Name As String
Get
Return pvtName
End Get
Set(value As String)
If String.IsNullOrEmpty(value) Then
Throw New ArgumentException("Passed Name is empty")
End If
Me.pvtName = value
End Set
End Property
End Class
调用DB(_db是一个PetaPoco数据库对象)
Return (_db.Fetch(Of Peta.Domain.PaulTest)(";EXEC selAllPaulTest")).OrderBy(Function(PaulTest) (PaulTest.ID)).ToList()
数据库中有什么
ID Name
107 Paul
返回的内容:
PaulTest.ID = 0
PaulTest.pvtID = 0
PaulTest.Name = "Paul"
PaulTest.pvtName = "Paul"
<PetaPoco.Ignore>
属性指示 PetaPoco
在映射期间忽略该列。因此,属性 Id
将始终返回默认值 0。
如果要防止Id
属性被修改,注释我们的或者删除属性,然后在Id
[=21]中添加一个privatesetter =] 如以下代码片段所示。
' <PetaPoco.Ignore>
Public Property Id As Integer
Get
Return pvtID
End Get
Private Set(value As Integer)
pvtID = value
End Set
End Property