تابعی مشترک برای برگرداندن رکورد یا (Entry) بر طبق ID در Entity Framework
در این تابع EntityType از جدول هایی که فیلد ID دارند می تونن برای فیلتر Entry طبق ID استفاده بشن....
Friend Function GetEntry(Of T)(ID As Guid) As T
Dim QueryString As String = String.Format("SELECT VALUE {0} FROM {0} WHERE {0}.ID = @ID", GetType(T).Name)
Dim Entry As T
Entry = My.KeyStoreData.CreateQuery(Of T) _
(QueryString, New Objects.ObjectParameter("ID", ID)).FirstOrDefault
Return Entry
End Function
نمونه بکارگیری تابع:
Dim Entry As Object = Nothing
Select Case SelectedMenuItem
Case InternetbankMenuItem
Entry = GetEntry(Of InternetBank)(ID)
Case BlogPostMenuItem
Entry = GetEntry(Of BlogPost)(ID)
Case CertificateMenuItem
Entry = GetEntry(Of Certificate)(ID)
Case CreditCardMenuItem
Entry = GetEntry(Of CreditCard)(ID)
Case DatabaseMenuItem
Entry = GetEntry(Of Database)(ID)
Case LegalCaseMenuItem
Entry = GetEntry(Of LegalCase)(ID)
Case SanaMenuItem
Entry = GetEntry(Of SANA)(ID)
Case softwareMenuItem
Entry = GetEntry(Of Software)(ID)
Case UploadedFileMenuItem
Entry = GetEntry(Of UploadedFile)(ID)
Case websiteMenuItem
Entry = GetEntry(Of Websites)(ID)
End Select
My.KeyStoreData.DeleteObject(Entry)
My.KeyStoreData.SaveChanges()
نقل قول: تابعی مشترک برای برگرداندن رکورد یا (Entry) بر طبق ID در Entity Framework
آنچه که متوجه شدم شما دنبال این هستید که با یک متد بتونید از صدها جدول و برمبنای ID، ردیف مورد نظر را دریافت کنید. یک نگاهی به این صفحه بندازید.
https://codingblast.com/entity-frame...ic-repository/
این مورد شدنی هست. به نمونه زیر توجه کنید:
Namespace IRepositories
Interface ICommonRepository
Function GetValid(ByVal type As Type, ByVal id As Integer) As Boolean
End Interface
End Namespace
پیاده سازی متد:
Namespace Repositories
Public Class CommonRepository
Inherits IRepositories.ICommonRepository
Private ReadOnly db As Contexts.Context
Public Sub New(ByVal Context As Contexts.Context)
db = cesContext
End Sub
Public Function GetValid(ByVal type As Type, ByVal id As Integer) As Boolean
Dim ent = db.Find(type, id)
If ent Is Nothing Then Throw New Exception("Invalid data")
Dim result As Boolean = CBool(ent.[GetType]().GetProperty("fldValid").GetValue(ent))
Return result
End Function
End Class
End Namespace