0

我正在尝试设置外键

protected void AdresDetailsView_ItemInserting(object sender,     DetailsViewInsertEventArgs e)
{
    var Id = Convert.ToInt32(CustomerDropDownList.SelectedValue);
    e.Values["Customer_Id"] = Id;
}

这不起作用,因为我的实体 (Adres) 没有属性 Customer_Id。
Customer_Id 是数据库中的列名,我应该使用作为导航属性的 Customer 属性。
但我不知道该怎么做。

我正在使用 EF 4.5

4

2 回答 2

1

最简单的方法是修改导航属性以使用外键属性。这将使您的班级同时拥有 aCustomerCustomerId/ Customer_Id/whatever you want 的属性,它们保持同步。然后,您可以按照您现在尝试的方式更新客户 ID。但是,您没有指定您使用的 EF 版本,并且旧版本不支持外键属性。

如果外键属性不是一个选项,您需要确保具有 ID 的客户Id存在于您的上下文中。这将类似于var customer = context.Customers.SingleOrDefault(c => c.Id == Id);您可以将Customer属性设置为该特定客户。

于 2013-02-05T14:39:00.477 回答
1

你在使用代码优先吗?如果是这样,我建议您创建自己的外键属性并使用Fluent API来建立您的约束和关系。

于 2013-02-05T15:33:23.957 回答