Αυτόν τον καιρό ασχολούμαι να φτιάξω ένα generic DAL για EF ver1.0 ώστε να δουλεύω μόνο με detached entities. Το πρόβλημα, βέβαια, είναι ότι χάνω το change tracking. Αναγκαστικά, λοιπόν, θα πρέπει να φτιάξω - μιας και από ό,τι είδα δεν υπάρχει κάποια έτοιμη κλάση - ένα collection το οποίο θα μου χρησιμεύσει στο binding, αλλά να υποστηρίζει change tracking. Ο πιο κατάλληλος υποψήφιος, από τον οποίο σκέφτομαι να κάνω inherit, είναι το ObservableCollection. Υπάρχουν, όμως, κάποια ζητήματα που αφορούν στο EntityKey. Ενώ τα νέα entities μπορούν εύκολα ν' αναγνωριστούν, καθώς ακόμα κι αν το Key τους δεν είναι null είναι οπωσδήποτε temporary, τα inserts στο DAL θα πρέπει να επιστρέφουν ξανά τα ίδια entities με το permanent EntityKey (πέρα - δώθε δηλαδή). Βεβαίως, το collection θα πρέπει να "ενημερωθεί" με τα "νέα" entities, έτσι ώστε, αν χρειαστεί να χρησιμοποιηθούν σε άλλες εργασίες να μην θεωρούνται added, αλλά original. Το collection δε θα μιλάει με το DAL, καθώς αυτό το έργο θα το αναλάβει ένα ενδιάμεσο AdapterObject, το οποίο θα στέλνει τις μεταβολές στο DAL και θα ενημερώνει ύστερα το collection. Κάτι ανάλογο στο πρότυπο των DataSets και των TableAdapters.
Η ερώτηση που θέλω να κάνω είναι, το σκέφτομαι καλά ή κάπου χάνω κάτι; Μήπως υπάρχει άλλος τρόπος και πάω να κάνω τα εύκολα δύσκολα; Εσείς πως έχετε λύσει το πρόβλημα του change tracking στον client, έτσι ώστε να ξέρετε τι θα στείλετε για αποθήκευση στο DAL;
Ακόμα κι ένας άνθρωπος μπορεί ν' αλλάξει τον κόσμο. Μη θέλεις να κυβερνήσεις. Απλά δείξε το μονοπάτι κι ο κόσμος θ' ακολουθήσει!!