複数のタイプを含むタイプリストのc#MVCエンティティフレームワークモデルプロパティ

Kitesaint1309

私は現在、Entity Frameworkと組み合わせたC#MVCプロジェクトに取り組んでいます。ここには、ユーザーが必要なデータを入力する必要があるビューページ(作成ページ)があります。以下のコードのようなモデルを入手しました。ユーザーがを持っていて、Boatそのプロパティを選択できる場所

public class Boat {
    public string Name{ get; set; }
}

public class Slowboat : Boat {
    public int Length { get; set; }
    public virtual Engine SpeedSource { get; set; }
}

public class Speedboat : Boat {
    public virtual List<?> SpeedSource { get; set; }
    public int Topspeed {get; set; }
}

public class Engine {
    public string EningeType { get; set; }
    public int Horsepower { get; set; }
    public string Manufacturer { get; set; }
}

public class Sail {
    public int SailCount { get; set; }
    public List<int> SailSizes { get; set; }
    public string Manufacturer { get; set; }
}

すべてがうまくいきます、スピードボートはいくつかの帆またはエンジンを持っています。この問題は、スピードボートに1つ以上のエンジンがある場合に発生します。

List<object>typeを使用してみましたが、投稿時にデータがデータベースに保存されませんでした。下のような一種のラッパークラスは迅速な解決策ですが、私の意見ではより良いものが必要です。

public class SpeedPower {
    public Engine Engine_ { get; set; }
    public Sail Sail_ { get; set; }
}

だから私の質問は:どのようにして複数のタイプを1つのリストに保存するのですか?

可能な解決策をありがとう。

編集:Thomas Flinkowが提案したように、相互のプロパティのいくつかを使用してインターフェイスを作成できます。

public interface ISpeedSource {
    string Manufacturer { get; set; }
}

public class Speedboat : Boat {
    public virtual List<ISpeedSource> SpeedSource { get; set; }
    public int Topspeed {get; set; }
}

では、このようなインターフェイスを使用すると、他のプロパティは保存されますか?

トーマス・フリンコウ

次のように、すべての「速度ソース」を定義できます

public class Engine : ISpeedSource { ... }

public class Sail : ISpeedSource { ... }

ISpeedSource単純であるインターフェイスを(多分空、必ずしも必要ではないが)

public interface ISpeedSource { ... }

そして、次のSpeedboatようなクラスを作成します

public class Speedboat : Boat 
{
    public virtual List<ISpeedSource> SpeedSource { get; set; }
    public int Topspeed { get; set; }
}

空のインターフェイスは避ける必要があるため、Davidが提案したように設計を考えすぎることをお勧めします

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

同じタイプの複数のIncludeステートメントを含む奇妙なエンティティフレームワークエラー

分類Dev

エンティティフレームワーク:独自のモデルタイプのリストは他のエントリを削除します

分類Dev

複数の結果セットとカスタムエンティティを含むエンティティフレームワークコードの最初のストアドプロシージャ

分類Dev

エンティティフレームワーク:複数のタイプのクエリ

分類Dev

角度グリッドには、インライン剣道グリッドのエディターテンプレート(リアクティブフォーム)を含む列があります。テンプレートコントロール(テキストボックス)とフォームはリンクしません

分類Dev

必要なプロパティ{0}がタイプ{1}に存在しません。FKを追加するときのエンティティフレームワーク(モデルファースト)

分類Dev

コードファーストタイプ ''のプロパティ ''のForeignKeyAttributeが無効です。エンティティフレームワーク

分類Dev

Symfony 2.7フォームエンティティタイプは、フォームに複数のプロパティをレンダリングします

分類Dev

アクティブレコード:複数の子モデルタイプを含む親モデル

分類Dev

エンティティフレームワーク:ナビゲーションプロパティデータのフィルタリング

分類Dev

asp.netコア3MVCのリストプロパティを含むモデルのフォーム

分類Dev

ラムダ式とlinqを使用して、EFを使用して別のエンティティモデルタイプのリストを含むエンティティモデルをデータベースに追加する方法

分類Dev

エンティティフレームワーク:複数レベルのプロパティを含めると、InvalidOperationExceptionが発生します

分類Dev

エンティティタイプのフレームワークオブジェクトをその子オブジェクト値プロパティでフィルタリングする方法は?

分類Dev

エンティティフレームワーク:タイプごとのソフト削除とテーブル

分類Dev

エンティティフレームワークエンティティタイプへの複数の関係/ナビゲーション

分類Dev

LiteDBのエンティティフレームワークデータプロバイダー

分類Dev

エンティティフレームワークタイプの変更T4テンプレート

分類Dev

Quickbooksデスクトップの複数エンティティのカスタムフィールド

分類Dev

エンティティフレームワークは、モデルをプログラムで複数のテーブルに分割します

分類Dev

エンティティフレームワークのナビゲーションプロパティを使用してデータベースを更新する

分類Dev

エンティティ作成時のTableName(含む/正規表現)-エンティティフレームワーク-テーブルプレフィックス

分類Dev

リストタイプのプロパティを含むSpringBatchFlatFileItemWriter書き込みモデル

分類Dev

エンティティフレームワーク-タイプごとのテーブルの問題

分類Dev

エンティティフレームワーク内のクラスのデータベースで計算されたプロパティの取得

分類Dev

複数のIDタイプを含む行でテーブルをフィルタリングする方法

分類Dev

Springデータjpaを使用して特定の文字列のセットを含むタイプArrayList <String>のプロパティを含むクエリエンティティ

分類Dev

アプリケーションで使用されるそのタイプのリストが複数ある場合に、モデルにカスタムオブジェクトシーケンスプロパティを保持する方法

分類Dev

プロパティファイルの値のリストを含むコンストラクターを使用してSpringBeanを記述します

Related 関連記事

  1. 1

    同じタイプの複数のIncludeステートメントを含む奇妙なエンティティフレームワークエラー

  2. 2

    エンティティフレームワーク:独自のモデルタイプのリストは他のエントリを削除します

  3. 3

    複数の結果セットとカスタムエンティティを含むエンティティフレームワークコードの最初のストアドプロシージャ

  4. 4

    エンティティフレームワーク:複数のタイプのクエリ

  5. 5

    角度グリッドには、インライン剣道グリッドのエディターテンプレート(リアクティブフォーム)を含む列があります。テンプレートコントロール(テキストボックス)とフォームはリンクしません

  6. 6

    必要なプロパティ{0}がタイプ{1}に存在しません。FKを追加するときのエンティティフレームワーク(モデルファースト)

  7. 7

    コードファーストタイプ ''のプロパティ ''のForeignKeyAttributeが無効です。エンティティフレームワーク

  8. 8

    Symfony 2.7フォームエンティティタイプは、フォームに複数のプロパティをレンダリングします

  9. 9

    アクティブレコード:複数の子モデルタイプを含む親モデル

  10. 10

    エンティティフレームワーク:ナビゲーションプロパティデータのフィルタリング

  11. 11

    asp.netコア3MVCのリストプロパティを含むモデルのフォーム

  12. 12

    ラムダ式とlinqを使用して、EFを使用して別のエンティティモデルタイプのリストを含むエンティティモデルをデータベースに追加する方法

  13. 13

    エンティティフレームワーク:複数レベルのプロパティを含めると、InvalidOperationExceptionが発生します

  14. 14

    エンティティタイプのフレームワークオブジェクトをその子オブジェクト値プロパティでフィルタリングする方法は?

  15. 15

    エンティティフレームワーク:タイプごとのソフト削除とテーブル

  16. 16

    エンティティフレームワークエンティティタイプへの複数の関係/ナビゲーション

  17. 17

    LiteDBのエンティティフレームワークデータプロバイダー

  18. 18

    エンティティフレームワークタイプの変更T4テンプレート

  19. 19

    Quickbooksデスクトップの複数エンティティのカスタムフィールド

  20. 20

    エンティティフレームワークは、モデルをプログラムで複数のテーブルに分割します

  21. 21

    エンティティフレームワークのナビゲーションプロパティを使用してデータベースを更新する

  22. 22

    エンティティ作成時のTableName(含む/正規表現)-エンティティフレームワーク-テーブルプレフィックス

  23. 23

    リストタイプのプロパティを含むSpringBatchFlatFileItemWriter書き込みモデル

  24. 24

    エンティティフレームワーク-タイプごとのテーブルの問題

  25. 25

    エンティティフレームワーク内のクラスのデータベースで計算されたプロパティの取得

  26. 26

    複数のIDタイプを含む行でテーブルをフィルタリングする方法

  27. 27

    Springデータjpaを使用して特定の文字列のセットを含むタイプArrayList <String>のプロパティを含むクエリエンティティ

  28. 28

    アプリケーションで使用されるそのタイプのリストが複数ある場合に、モデルにカスタムオブジェクトシーケンスプロパティを保持する方法

  29. 29

    プロパティファイルの値のリストを含むコンストラクターを使用してSpringBeanを記述します

ホットタグ

アーカイブ