Automapper schlägt fehl, wenn IQueryable <Objekt> projiziert wird, wenn das Objekt eine Sammlungseigenschaft hat

Also, hier ist meine Situation. Ich habe zwei Klassen:

<code>class FromClass
{
    public string[] Foo { get; set; }
}

class ToClass
{
    public string[] Foo { get; set; }
}
</code>

Die Klassen haben Eigenschaften, die Arrays sind. Sie könnten seinList<T> oderIEnumerable<T>In all diesen Fällen erhalte ich das gleiche Ergebnis.

Ich versuche, mit dem von einem zum anderen zu mappenAutoMapper.QueryableExtensions:

<code>class Program
{
    static void Main(string[] args)
    {
        // create a "From" object
        string[] anArray = new string[] { "a", "b" };
        FromClass anObject = new FromClass() { Foo = anArray };

        // make a queryable set that includes the "From" object
        IQueryable<FromClass> queryableObjects = (new FromClass[] { anObject }).AsQueryable();

        // set up AutoMapper
        Mapper.CreateMap<FromClass, ToClass>();
        Mapper.AssertConfigurationIsValid();

        // test plain mapping
        IQueryable<ToClass> test1 = queryableObjects.Select(o => Mapper.Map<FromClass, ToClass>(o));
            // success!

        // test queryable extensions
        IQueryable<ToClass> test2 = queryableObjects.Project().To<ToClass>();
            // InvalidOperationException: "Sequence contains no elements"

    }
}
</code>

Warum wirft test2 einenInvalidOperationException? Wenn ich die Art mache vonFoo etwas, das keine Sammlung ist, z. einstring oder eine andere Klasse - dann funktioniert alles perfekt.

Mache ich etwas falsch? Etwas nicht verstehen? Oder habe ich einen Bug getroffen?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage