Avatar billede jonas_h Nybegynder
02. april 2009 - 10:49 Der er 1 kommentar

Problemer med Linq og generic types

Jeg skal have lavet en metode, som går ind og ser på alle properties for en bestemt klasse. Hvis en property har en bestemt attribut og er af typen "EntitySet<TEntity>" så skal der gøres noget specielt. Indtil nu har jeg :

        private static bool DeleteChildren(Entity entity)
        {
            Type type = typeof(Entity);
            foreach (PropertyInfo property in type.GetProperties())
            {
                foreach (object o in property.GetCustomAttributes(true))
                {
                    if (o is AssociationAttribute)
                    {
                        Type t = property.PropertyType;
                        Type[] genericTypes = t.GetGenericArguments();
                        BLA BLA BLA
                    }
                }
            }
            return true;
        }

Jeg er gået død der hvor der står bla bla bla. Det jeg gerne vil have gjort er for det første, at få den generiske type givet i EntitySet<DENNE_TYPE>. Derefter vil jeg kunne køre alle elementer i dette entity set igennem og kalde en metode: DataService<DENNE_TYPE>.Delete(instans_af_denne_type) for hvert element i sættet.

Meningen med hele metoden er, at når en LinQ entity skal slettes, vil jeg have muligheden for, at alle foreign-key klasser også slettes samtidigt, hvilket vil blive opfyldt med ovenstående metode - hvis jeg da kan lave den færdig!

Håber det giver mening og I har nogle inputs :)
Avatar billede jonas_h Nybegynder
03. april 2009 - 14:34 #1
Ingen...? :(
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester