1

これが私のモデルです

public class Category
{
  public int CategoryId { get; set; }
  public string Description { get; set; }
  public Category Parent { get; set; }
  public ICollection<Category> Children { get; set; }
}

マッピング:

modelBuilder.Entity<Category>()
        .HasMany(x => x.Children)
        .WithOptional(y => y.Parent)
        .Map(m => m.MapKey("ParentId"));

データを追加する方法は次のとおりです。

 var a = new List<Category>
 {
   new Category { Description = "Animals" }
   new Category { Description = "Dog", Parent = 1 } <<<-ERROR
 }
 a.ForEach(s => context.Categories.Add(s));
 context.SaveChanges();

CategoryId を 1 行目から 2 行目に追加するにはどうすればよいですか?

申し訳ありませんが、これは非常に基本的な質問だと思いますが、その方法がわかりません

ありがとう

4

2 に答える 2

1

1は整数であり、Categoryタイプではないため、1を使用することはできません。リスト宣言の外でカテゴリを宣言し、後でリストに追加する必要があります。

List<Category> list = new List<Category>();
Category a = new Category();
Category b = new Category(){ Parent = a};

list.Add(a);
list.Add(b);

これは私が作成したコードの一部であり、テストしなかったことに注意してください。

于 2012-04-28T13:53:33.243 に答える
0

別の方法:

Category a = new Category();
Category b = new Category();

a.Children.Add(b);

context.Categories.Add(a);
context.SaveChanges();

ID の配線を行います。(これも未確認です。)

于 2012-04-28T15:35:28.377 に答える