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 : Sélectionner tout - Visualiser dans une fenêtre à part
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?