前の質問(これはもちろん別の質問です)で述べたように、「Something」というモデルには3つのプロパティがあります:表示するプロパティを取得できません
int SomethingID
string Name
List<System.Drawing.Color>
(もちろん、それは元のコードではありません、いくつかの長さを保存することで、一部の読者を節約したい)
そして、私の初期化子はこれです:
protected override void Seed(DatabaseContext context)
{
var somethings = new List<Something>
{
new Something
{
Name="blah blah", Colors= { Color.Black, Color.Red }
}
};
somethings.ForEach(s => context.Somethings.Add(s));
context.SaveChanges();
base.Seed(context);
}
ビュー内でこれらの色を取得しようとすると、色は空になります。 somethings
を構築した直後にInitializer内にブレークポイントを設定すると、Countが2であるColors
というプロパティが表示されます(ID、名前、および色のオブジェクトがあるので問題ありません)。
しかし、それがビューの中にあるとき、デバッガはColors
のカウントが0であることを示しています。あなたが推測できるように、リストは空です。 Colors: Black Red
現在の結果: Colors:
(空)
以下の私の答えに、名前付き色の文字列をデータベースとのシステムカラーリストにシームレスに変換する変換プロパティを追加しました。現在のシステムカラーリストを維持するだけで、文字列プロパティは自動的にそれを翻訳し、リレーショナルデータベースの状態を維持します。 – benjamin