1

AutoMapper の新しいファンとして、AutoMapper を使用して次のことを行うにはどうすればよいでしょうか。

次のクラスが与えられた場合、アイテム文字列のリストがアイテムのタイトル プロパティにマップされる Group から FlattenedGroup を作成したいと考えています。

public class Group
{
    public string Category { get; set; }
    public IEnumerable<Item> Items { get; set; }
}

public class Item
{
    public int ID { get; set; }
    public string Title { get; set; }
}


public class FlattenedGroup
{
    public string Category { get; set; }
    public IEnumerable<string> Items { get; set; }
}

ありがとう

ジョセフ

4

2 に答える 2

7

あなたができる他のことは、アイテム->文字列からコンバーターを作成することです:

Mapper.CreateMap<Item, string>().ConvertUsing(item => item.Title);

これで、グループで特別なことをする必要はありません-> FlattenedGroupマップ:

Mapper.CreateMap<Group, FlattenedGroup>();

そこに必要なのはそれだけです。

于 2010-01-11T13:50:21.543 に答える
1

おそらく、Linq とラムダ式を使用して、FlattenedGroup の文字列のリストを Group のタイトルにマップできます。

Mapper.CreateMap<Group, FlattenedGroup>()
                .ForMember(f => f.Category, opt => opt.MapFrom(g => g.Category))
                .ForMember(f => f.Items, opt => opt.MapFrom(g => g.Items.Select(d => d.Title).ToList()));

using ステートメントに System.Linq を必ず追加してください。

于 2010-01-11T03:16:00.847 に答える