更新了关系表,实体模型关系没有新字段

时间:2014-04-12 18:49:04

标签: c# sql entity-framework

我最近在我的数据库中更新了一个关系表,以获得一个额外的字段。当我从数据库更新我的实体模型时,此关系尚未更新为包含此字段。如何在模型中访问此属性?

示例:

People
---
PersonId - PKEY


PaymentPlans
---
PlanId - PKEY


PersonPaymentPlans
---
PersonId - FKEY
PlanId - FKEY
ConfidenceLevel - INT

在这种情况下,执行此实体查询时:

People
    .First(p => p.PersonId == pid)
    .Plans.First(p => p.PlanId == ppId)
    .ConfidenceLevel;

ConfidenceLevel不会显示为可访问的属性。如何访问此值或如何让我的EDMX公开此属性?

1 个答案:

答案 0 :(得分:1)

我猜你首先使用的是数据库而且这个功能有点缺乏自动更新这种变化你必须这样做#34;半手动"。

首先打开您的EDMX文件并选择符号表示这两个表之间关系的行并删除它,在从数据库更新您的模型后,您应该得到几乎所需的结果。

我说几乎是因为你在查询中提到

.Plans.First(p => p.PlanId == ppId).ConfidenceLevel;

这不太正确,因为EF将生成您的PersonPaymentPlans表,因为它包含两个以上的外键值。所以你的查询看起来会更像这样:

People
    .First(p => p.PersonId == pid)
    .PersonPaymentPlans.First(p => p.PlanId == ppId)
    .ConfidenceLevel;