Automapper:コレクションの抽象型のインスタンスを作成できません

セルジオロメロ

抽象基本クラスから継承する多対多の関係を持つ2つのエンティティを、独自の抽象基本クラスからも継承するDtoにマップしようとしています。Essayクラスのマッピングのみを含めると、Booksコレクションがnullであることを除いて、すべて正常に機能します。そのコレクションのマッピングを追加するとすぐに、次の例外が発生します。

内部例外1:ArgumentException:抽象型Dtos.Dto`1 [System.Int64]のインスタンスを作成できません。

次のコードについて考えてみます。

namespace Entities
{
    public abstract class Entity<TId> : Entity
        where TId : struct, IEquatable<TId>
    {
        protected Entity()
        {
        }

        public TId Id { get; set; }
    }

    public class Essay : Entity<long>
    {
        public string Name { get; set; }
        public string Author { get; set; }

        public List<EssayBook> EssayBooks { get; set; }
    }

    public class Book : Entity<long>
    {
        public string BookName { get; set; }
        public string Publisher { get; set; }
        public List<EssayBook> EssayBooks { get; set; }
    }

    public class EssayBook
    {
        public long EssayId { get; set; }
        public long BookId { get; set; }
        public Essay Essay { get; set; }
        public Book Book { get; set; }
    }
}

namespace Dtos
{
    public abstract class Dto<TId>
       where TId : struct, IEquatable<TId>
    {
        protected Dto()
        {
        }

        public TId Id { get; set; }
    }

    public sealed class Essay : Dto<long>
    {
        public string Name { get; set; }
        public string Author { get; set; }

        public List<Book> Books { get; set; }
    }

    public class Book : Dto<long>
    {
        public string BookName { get; set; }
        public string Publisher { get; set; }
    }
}

namespace DtoMapping
{
    internal sealed class EssayBookProfile : Profile
    {
        public EssayBookProfile()
        {
            this.CreateMap<Entities.Essay, Dtos.Essay>()
                .IncludeBase<Entities.Entity<long>, Dtos.Dto<long>>()
                .ForMember(dto => dto.Books, opt => opt.MapFrom(e => e.EssayBooks.Select(pl => pl.Book)));
        }
    }
}

このマッピングを構成する別の方法があるかどうかを探していましたが、常にこの方法を見つけています。また、基本クラスのマッピングを具体的に追加しようとしましたが、まったく同じ結果が得られます。

私のWebAPIプロジェクトには、AutoMapper.Extensions.Microsoft.DependendyInjectionパッケージバージョン7.0.0が含まれてます

セルジオロメロ

投稿のコメントの推奨事項によって要点を作成しているときに、Bookdtoのマッピングが欠落していることに気付きました。残念ながら、例外は問題について明確ではなかったので、ここで質問することになりました。マッピングを追加した後、すべてが期待どおりに機能し始めました。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

NHibernateは抽象クラスのインスタンスを作成できません

分類Dev

C#型定義の宣言抽象クラスまたはインターフェイスのインスタンスを作成できません

分類Dev

抽象クラスランダムkotlinのインスタンスを作成できません

分類Dev

抽象クラスのインスタンスを作成できません(ランダム)

分類Dev

PyXB:抽象型をインスタンス化できません

分類Dev

TS2511:抽象クラス 'Validator'のインスタンスを作成できません

分類Dev

リフレクションのみのコンテキストでMethodInfoインスタンスを取得できません

分類Dev

ファクトリパターン-抽象クラスまたはインターフェイスのインスタンスを作成できません

分類Dev

Solr-Sparkは、コレクションURLへのアクセスエラーのためにインデックスを作成できません

分類Dev

Firebase-コレクションのコレクションをネストできません

分類Dev

WCFSilverlightサービスで抽象クラスまたはインターフェイスのインスタンスを作成できません

分類Dev

リフレクション付きの内部コンストラクターで型をインスタンス化します

分類Dev

QuarkusアプリケーションでJwtClaimsBuilderのインスタンスを作成できません

分類Dev

タイプのインスタンスを作成できませんでした。タイプはインターフェイスまたは抽象クラスであり、インスタンス化できません

分類Dev

Javaで抽象クラスのインスタンスを作成できますか

分類Dev

HTTPステータス500-パス/ adduserのアクションインスタンスをStrutsに作成できませんでした

分類Dev

「EventTriggerBehaviorタイプのインスタンスをコレクションBehaviorCollectionに追加できません」を取得して、クリック可能なTextBlockを作成します

分類Dev

AndroidMVVMでクラスViewModelのインスタンスを作成できません

分類Dev

Codeigniterでクラスのインスタンスを作成できません

分類Dev

のインスタンスを作成できません-ジャクソン

分類Dev

NSURLSessionのテスト「履歴書をクラスNSURLSessionDataTaskの抽象インスタンスに送信できません」

分類Dev

Android BroadcastReceiver:レシーバーをインスタンス化できません-空のコンストラクターがありません

分類Dev

C#:「静的クラスのインスタンスを作成できません」

分類Dev

クラスViewModelのインスタンスを作成できません

分類Dev

クラスViewModelのインスタンスを作成できません

分類Dev

クラスViewModelkotlinのインスタンスを作成できません

分類Dev

ViewModelクラスのインスタンスを作成できません

分類Dev

HiltViewModel:クラスのインスタンスを作成できません

分類Dev

エンティティ、差分インスタンス、またはなしでコレクション型の列を宣言するとき

Related 関連記事

  1. 1

    NHibernateは抽象クラスのインスタンスを作成できません

  2. 2

    C#型定義の宣言抽象クラスまたはインターフェイスのインスタンスを作成できません

  3. 3

    抽象クラスランダムkotlinのインスタンスを作成できません

  4. 4

    抽象クラスのインスタンスを作成できません(ランダム)

  5. 5

    PyXB:抽象型をインスタンス化できません

  6. 6

    TS2511:抽象クラス 'Validator'のインスタンスを作成できません

  7. 7

    リフレクションのみのコンテキストでMethodInfoインスタンスを取得できません

  8. 8

    ファクトリパターン-抽象クラスまたはインターフェイスのインスタンスを作成できません

  9. 9

    Solr-Sparkは、コレクションURLへのアクセスエラーのためにインデックスを作成できません

  10. 10

    Firebase-コレクションのコレクションをネストできません

  11. 11

    WCFSilverlightサービスで抽象クラスまたはインターフェイスのインスタンスを作成できません

  12. 12

    リフレクション付きの内部コンストラクターで型をインスタンス化します

  13. 13

    QuarkusアプリケーションでJwtClaimsBuilderのインスタンスを作成できません

  14. 14

    タイプのインスタンスを作成できませんでした。タイプはインターフェイスまたは抽象クラスであり、インスタンス化できません

  15. 15

    Javaで抽象クラスのインスタンスを作成できますか

  16. 16

    HTTPステータス500-パス/ adduserのアクションインスタンスをStrutsに作成できませんでした

  17. 17

    「EventTriggerBehaviorタイプのインスタンスをコレクションBehaviorCollectionに追加できません」を取得して、クリック可能なTextBlockを作成します

  18. 18

    AndroidMVVMでクラスViewModelのインスタンスを作成できません

  19. 19

    Codeigniterでクラスのインスタンスを作成できません

  20. 20

    のインスタンスを作成できません-ジャクソン

  21. 21

    NSURLSessionのテスト「履歴書をクラスNSURLSessionDataTaskの抽象インスタンスに送信できません」

  22. 22

    Android BroadcastReceiver:レシーバーをインスタンス化できません-空のコンストラクターがありません

  23. 23

    C#:「静的クラスのインスタンスを作成できません」

  24. 24

    クラスViewModelのインスタンスを作成できません

  25. 25

    クラスViewModelのインスタンスを作成できません

  26. 26

    クラスViewModelkotlinのインスタンスを作成できません

  27. 27

    ViewModelクラスのインスタンスを作成できません

  28. 28

    HiltViewModel:クラスのインスタンスを作成できません

  29. 29

    エンティティ、差分インスタンス、またはなしでコレクション型の列を宣言するとき

ホットタグ

アーカイブ