Entity Framework - Classe DAL générique?
Bonjour,
j'ai une base de données SQL Server CE (bdd locale) concernant des films(table Movie, Actor, Director, etc.). J'essaie de mettre en place une couche d'accès aux données en appliquant le principe des DAL, BEL et BPL.
Pour l’instant j'en suis à la couche DAL. Ça marche mais j'aimerais créer une classe générique et ça là que je bloque..
Je vous montre la classe que j'ai pour l'instant:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| Imports System.Data.Objects
Imports System.Data.Objects.DataClasses
Public Class DALClass
Private Property ObjContext As ObjectContext
Private Property ObjSet As ObjectSet(Of EntityObject)
'Initialize
Public Sub Initialize(ByVal ObjSet As ObjectSet(Of EntityObject))
Me.ObjSet = ObjSet
ObjContext = ObjSet.Context
End Sub
'DeleteByID
Public Function DeleteByID(ByVal ID As Integer) As Boolean
Dim o = (From p In ObjSet Where p.ID = ID Select p).First '"p.ID" compile pas => "ID" n'est pas membre de System.Data.Objects.DataClasses.EntityObject
ObjContext.DeleteObject(o)
Return Update()
End Function
'Insert
Public Function Insert(ByVal obj As Object) As Boolean
ObjSet.AddObject(obj)
Return Update()
End Function
'SelectAll
Public Function SelectAll() As System.Collections.Generic.IEnumerable(Of Object)
Return (From p In ObjSet Select p).ToList()
End Function
'SelectByID
Public Function SelectByID(ByVal ID As Integer) As Object
Return (From p In ObjSet Where p.ID = ID Select p).First '"p.ID" compile pas => "ID" n'est pas membre de System.Data.Objects.DataClasses.EntityObject
End Function
'Update
Public Function Update() As Boolean
Return ObjContext.SaveChanges() > 0
End Function
End Class |
A la base pour une DALMovie, on utilise un ObjectSet(Of Movie), Movie héritant de EntityObject, j'ai donc essayé de le remplacer par EntityObject mais "impossible de caster Movie en EntityObject" (de plus il n'y a pas de membre 'ID').. et maintenant je sais plus trop de quel coté chercher..
Connaissez vous un moyen de faire ça?