2

私は次のクラスを持っています:

public class Account
{
    public int AccountID { get; set; }
    public Enterprise Enterprise { get; set; }
    public List<User> UserList { get; set; }
}

そして、私は次のメソッドフラグメントを持っています:

Entities.Account accountDto = new Entities.Account();
DAL.Entities.Account account;

Mapper.CreateMap<DAL.Entities.Account, Entities.Account>();
Mapper.CreateMap<DAL.Entities.User, Entities.User>();

account = DAL.Account.GetByPrimaryKey(this.Database, primaryKey, withChildren);

Mapper.Map(account,accountDto);
return accountDto;

メソッドが呼び出されると、Account クラスは正しくマップされますが、Account クラスのユーザーのリストはマップされません (NULL です)。リストには、マップする必要がある 4 つのユーザー エンティティがあります。誰かが何が間違っているのか教えてもらえますか?

4

1 に答える 1

3

accountDtoを渡さないようにして、AutoMapperに作成させてください。AutoMapperは、既存の宛先オブジェクトにマップするときに、すでにnullの宛先コレクションがないことを前提としています。代わりに、次のようにします。

var accountDto = Mapper.Map<DAL.Entities.Account, Entities.Account>(account);

最後に確認する必要があるのは、構成が有効であることです。そのため、次のことを試すことができます。

Mapper.AssertConfigurationIsValid();

それらのCreateMap呼び出しの後。これは、すべてが宛先タイプ側で適切に整列していることを確認するためにチェックします。

于 2010-03-15T12:21:51.380 に答える