1

ということで、もっと早くカスタムマッパーを自作したいと思っていたのですが、(参考文献などを入手したので難しいので、その通りです^^)、オートマッパーの方が楽なのでもっと運がいいとのアドバイスをいただきました。変換したいクラスのマッピングを作成し始めました (週単位で SQLite ファイルから SQLserver データベースを更新するアプリケーションを作成したいのですが、テーブル名とプロパティは同じで、大文字だけが同じではありませんが、オートマッパーは大文字と小文字を区別しないので素晴らしいです)

これが私が試したコードです:

Mapper.CreateMap<person, Person>();
Mapper.CreateMap<personAbility, PersonAbility>();
Mapper.AssertConfigurationIsValid();

次に、 personabilities プロパティを変換する方法がわからないというエラーが表示されます。だから私はググって、それを含める必要があることを知りました:

Mapper.CreateMap<person, Person>()
.Include<personAbility, PersonAbility>()
Mapper.CreateMap<personAbility, PersonAbility>();
Mapper.AssertConfigurationIsValid();

ただし、ここでは、必要なのは人格ではなくリスト(EntityCollection)であると不平を言っています。だから私は試しました:

Mapper.CreateMap<person, Person>()
.Include<EntityCollection<personAbility>, EntityCollection<PersonAbility>>()
Mapper.CreateMap<personAbility, PersonAbility>();
Mapper.AssertConfigurationIsValid();

ただし、タイプがわからないというエラーが発生し、さらにいくつかの結果をグーグルで検索しました: https://github.com/AutoMapper/AutoMapper/wiki/Lists-and-arraysサポートリストには EntityCollection がありません。私は別の壁(行き止まり)に遭遇したことを意味しますか?私のデータベースをマップする他の解決策/方法があれば、誰でもこの解決策を知っています。

4

2 に答える 2

0

私は最終的にそれを修正しました。私はインクルードで間違った方法をとっていました。コレクションもマップする必要がありました

この行を追加すると修正されました:(およびインクルード行を削除します)

        Mapper.CreateMap<EntityCollection<personAbility>, EntityCollection<PersonAbility>>();

ご尽力いただきありがとうございます

于 2012-09-10T21:03:53.337 に答える
0

私は肯定的ではありませんが、Person のマップを作成する前に PersonAbility のマップを作成する必要があるかもしれません。

于 2012-09-10T20:10:36.067 に答える