使用实体框架为具有引用的列指定值
我在为具有引用的实体分配值时遇到问题。我得到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
是 “客户” 实际上是一个客户,而不是一个列表?
在这种情况下,你可以这样做:
bv.CustomerReference.EntityKey = new EntityKey("MyEntities.Customers", "CustomerId", selCustomers);
显然,与实际的实体上下文和实体集的名称取代“MyEntities.Customers”。
我会补充说它是极端混淆使用复数参数/属性名称为单个对象。
在我的实体图中没有复数。所以那里的班级被称为客户 – 2009-09-23 14:37:25
该班级应该是客户(就像你拥有它)。实体集名称应该是Customers。自定义参数应该是自定义的(或者,根据FxCop规则,选定的客户更好)。 bv.Customers应该是bv.Customer – 2009-09-23 14:47:50
您正在分配给新建的BookingView对象还是已将其至少一次持久保存到数据库? BookingView和客户之间的关系是否与许多客户的预订视图有关?提供数据模型的基础知识似乎在这里很有价值(任何外键都是可空的,等等)。 – 2009-09-23 13:20:31
它们不能为空,每个“BookingView”必须有一个“CustomerID”,不可为空FK – 2009-09-23 16:18:15