2009-09-23 29 views
0

我在爲具有引用的實體分配值時遇到問題。我得到intellisense和所有,但我得到一個空引用異常,當我嘗試將它分配給傳遞到保存到數據庫的函數的對象。使用實體框架爲具有引用的列指定值

 public ActionResult BookingViewEdit([Bind(Include = "BookingViewID,Enabled,ObjectLimit,RSSenabled")]BookingView bv, int selCustomers) 
    { 
     bv.Customers.CustomerID = selCustomers; 

     _bvs.SaveBookingView(bv); 

需要做什麼來爲CustomerID賦值? FK鍵位於「BookingView」表格中,如果我只是點擊「bv。」那裏沒有CustomerID。

在此先感謝

/M

+0

您正在分配給新建的BookingView對象還是已將其至少一次持久保存到數據庫? BookingView和客戶之間的關係是否與許多客戶的預訂視圖有關?提供數據模型的基礎知識似乎在這裏很有價值(任何外鍵都是可空的,等等)。 – 2009-09-23 13:20:31

+0

它們不能爲空,每個「BookingView」必須有一個「CustomerID」,不可爲空FK – 2009-09-23 16:18:15

回答

1

是 「客戶」 實際上是一個客戶,而不是一個列表?

在這種情況下,你可以這樣做:

bv.CustomerReference.EntityKey = new EntityKey("MyEntities.Customers", "CustomerId", selCustomers); 

顯然,與實際的實體上下文和實體集的名稱取代「MyEntities.Customers」。

我會補充說它是極端混淆使用複數參數/屬性名稱爲單個對象。

+0

在我的實體圖中沒有複數。所以那裏的班級被稱爲客戶 – 2009-09-23 14:37:25

+0

該班級應該是客戶(就像你擁有它)。實體集名稱應該是Customers。自定義參數應該是自定義的(或者,根據FxCop規則,選定的客戶更好)。 bv.Customers應該是bv.Customer – 2009-09-23 14:47:50