0
超脫我有模型關係:實體框架,刪除實體如果從另一個實體
modelBuilder.Entity<Product>()
.HasMany(p => p.Properties)
.WithOptional();
對於examle,產品1有3個屬性,當我從產品中移除一個屬性(而不是從DB)我想在數據庫中刪除它,因爲它不再在任何地方使用。 我可以使用EF來做到這一點嗎?
超脫我有模型關係:實體框架,刪除實體如果從另一個實體
modelBuilder.Entity<Product>()
.HasMany(p => p.Properties)
.WithOptional();
對於examle,產品1有3個屬性,當我從產品中移除一個屬性(而不是從DB)我想在數據庫中刪除它,因爲它不再在任何地方使用。 我可以使用EF來做到這一點嗎?
如果你的導航屬性不虛:
using(var db = new YourDbContext()
{
var product = db.Products.FirstOrDefault(x => ...);
product.Properties.RemoveAll(x => ...);
db.SaveChanges();
}
否則:
using(var db = new YourDbContext()
{
var product = db.Products.Include("Properties").FirstOrDefault(x => ...);
product.Properties.RemoveAll(x => ...);
db.SaveChanges();
}
能EF自動做到這一點? – 2013-03-21 10:24:48
當您從數據庫加載某些東西時,EF會在內存緩存中使用它保留所有關係的地方 - 稱爲對象跟蹤。它由默認打開。如果您從另一實體中定義的集合中刪除某個實體,則EF會注意到該實體。一旦您調用SaveChanges(),對象跟蹤中的所有更改都將保留在數據庫中。 – 2013-03-21 10:26:01