2012-04-02 8 views
0

Ich habe ein IRecord, das eine ICollection von Samples enthält. Die ICollection sieht wie folgt aus:Wie kann ich eine ICollection-Eigenschaft aus einem IRecord herausholen?

Sample sample1 = scope.DbContext.Samples.AddNew(new Sample 
     { 
      Name = GenerateName("Sample one"), 
      Tests = tests 
     }); 

Sample sample2 = scope.DbContext.Samples.AddNew(new Sample 
    { 
     Name = GenerateName("Sample two"), 
     Tests = tests 
    }); 

ICollection<Sample> samples = new Collection<Sample>(); 
samples.Add(sample1); 
samples.Add(sample2); 

Dann habe ich die Proben zu dem Datensatz hinzufügen:

Order record = scope.DbContext.Orders.AddNew(new Order 
{ 
    Name = GenerateName("Order"), 
    Samples = samples 
}); 

Jetzt möchte ich aus dem Datensatz die Proben erhalten. Ich weiß, dass, wenn ich es tue

Ich bekomme den korrekt generierten Namen. Wenn ich aber mache

object propertyValue = record["Samples"]; 

es hat keine Elemente drin. Ich möchte Folgendes tun:

Warum wird Record ["Samples"] nicht die ICollection bekommen?

+0

Was bekommst du mit record ["Samples"]? –

+0

Können Sie uns den Code für 'IRecord' zeigen? – svick

+0

@Adriano Ich bekomme {System.Data.Objects.DataClasses.EntityCollection } –

Antwort

1

Es sieht für mich aus, dass Sie das Schlüsselwort as wirklich verwenden möchten.

var samples = record["Samples"] as ICollection<Sample>; 

Warum verwenden Sie nicht nur den statischen Typ CLR?

var samples = record.Samples; 

Vielleicht verstehen Ich bin einfach nicht, was Sie versuchen, hier zu tun, aber es scheint, wie es recht einfach auf die oben gekocht werden kann.

+0

Ich weiß nicht im Voraus, welchen Typ die ICollection enthält. Ich versuche es auf diese Weise, um die ICollection Methode zu umgehen. –

+0

@NiekdeKlein Erben alle möglichen Typen von einer Basisklasse/Schnittstelle? Sie könnten immer Generika versuchen, wenn nicht. –

+0

var samples = record ["Samples"] als ICollection ; gibt dasselbe Ergebnis wie var property in (IEnumerable ) propertyValue, es ist auch leer –

Verwandte Themen