は、私はこれらのPOCOを持っているコード最初のモデルを作った:EF4 1対多リレーションシップ、どのように私は子を持つオブジェクトをリフレッシュするのですか?
public class Customer
{
public int CustomerId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public int gender { get; set; }
public virtual List<Order> Orders { get; set; }
}
public class Order
{
public int OrderId { get; set; }
public string OrderName { get; set; }
}
コンテキスト:
public class DatabaseContext : DbContext
{
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Order>().HasKey(x => x.OrderId);
modelBuilder.Entity<Customer>().HasKey(z => z.CustomerId);
base.OnModelCreating(modelBuilder);
}
public DbSet<Order> Orders { get; set; }
public DbSet<Customer> Customers { get; set; }
}
は今、すべてがうまくある:
private void button2_Click(object sender, EventArgs e)
{
DatabaseContext db = new DatabaseContext();
if (cs == null)
cs = db.Customers.FirstOrDefault();
db.Orders.Remove(db.Orders.FirstOrDefault());
db.SaveChanges();
MessageBox.Show(cs.Orders.Count.ToString());
}
:
をしかし、私はこのコードを実行すると
のカウントがcs.Orders.Count
の場合、常に同じままです。間違って何イム
?
注:すべての注文は同じ顧客に属していますが、より複雑な状況を再現しています。
私はそのすべてのチャイルズとCSの状態を更新しないか、別の言葉で質問は?事前に
感謝..
私は注文からそれを削除したいが、それは彼らがすることになっている顧客の原因に反映していなし:
はあなたのような何かをしたいと思いませんつまり、私はcs.ordersをリフレッシュしたいのですが、 csの代わりにdbから削除する必要がある理由は、csへのアクセス権を持っていないことがあります。 – Stackerプラス私はあなたの行(2番目)を使用する場合、注文はdbから削除されません! – Stacker