我见过类似的问题,但它们并不是我所指的(或者它们可能是但我不明白答案)
在我之前使用 Linq2SQL 的应用程序中,我能够通过执行以下操作来重载带有参数的构造函数:
Namespace CoreDb
Partial Public Class Accomplishment
Public Sub New(ByVal accomplishmentTypeID As Object, ByVal description As String, ByVal title As String, ByVal applicableDate As DateTime, ByVal lastUpdatedBy As String)
Me.New()
If TypeOf (accomplishmentTypeID) Is Guid Then
Me.AccomplishmentTypeId = accomplishmentTypeID
End If
If TypeOf (accomplishmentTypeID) Is String Then
Me.AccomplishmentTypeId = New Guid(accomplishmentTypeID.ToString())
End If
Me.Description = description
Me.ApplicableDate = applicableDate
Me.Title = title
Me.Id = Guid.NewGuid()
Me.DateCreated = DateTime.Now
Me.DateModified = DateTime.Now
Me.LastUpdatedBy = lastUpdatedBy
Me.CreatedBy = lastUpdatedBy
End Sub
End Class
End Namespace
基本上使用对象的部分类,共享 .dbml 文件的命名空间并调用默认构造函数,然后执行其他操作。
那么在我的代码中,我可以执行以下操作:
Dim accomplishment As New Accomplishment(id, description, title, applicableDate, lastUpdatedBy)
这似乎不再适用于 Entity Framework ,因为没有要调用的默认构造函数。
这不再起作用了吗?如果是这样,那么什么是实现这样的东西的好选择?
最佳答案
没有生成任何默认构造函数,但这并不意味着它没有。但是,当您在没有显式设置无参数构造函数的类中定义带参数的构造函数时,它将隐藏默认构造函数。
所以在你的部分类中,你只需要定义一个无参数的构造函数。
关于.net - Entity Framework 参数化/重载构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5342184/