我有一個應用程序跟蹤(爲了舉例)在給定的餐廳有什麼飲料可用。我的域模型看起來像:Fluent NHibernate - Cascade在模型中不存在明確的父 - >子關係時刪除一個子對象
class Restaurant {
public IEnumerable<RestaurantDrink> GetRestaurantDrinks() { ... }
//other various properties
}
class RestaurantDrink {
public Restaurant Restaurant { get; set; }
public Drink { get; set; }
public string DrinkVariety { get; set; } //"fountain drink", "bottled", etc.
//other various properties
}
class Drink {
public string Name { get; set; }
public string Manufacturer { get; set; }
//other various properties
}
我的數據庫模式是(我希望)關於你所期望的; 「RestaurantDrinks」本質上是餐廳和飲料之間的映射表,具有一些額外的屬性(如「DrinkVariety」)。
使用Fluent NHibernate來設置映射,我建立了一個從餐廳到RestaurantDrinks的「HasMany」關係,當它的父級餐廳被刪除時,後者將被刪除。
我的問題是,鑑於「飲料」沒有任何明確引用RestaurantDrinks的屬性(該關係僅存在於底層數據庫中),我可以設置一個映射,使RestaurantDrinks被刪除關聯飲料被刪除?
更新:我一直在試圖建立使用
References(x => x.Drink)
.Column("DrinkId")
.Cascade.All();
從事物的「RestaurantDrink」結束映射但這似乎並不工作(我仍然得到FK違反時刪除一份飲料)。