C# 更新的关系表,实体模型关系没有新字段

C# 更新的关系表,实体模型关系没有新字段,c#,sql,entity-framework,C#,Sql,Entity Framework,我最近更新了数据库中的一个关系表,以增加一个字段。当我从数据库更新实体模型时,此关系尚未更新为包含此字段。如何在模型中访问此属性 例如: People --- PersonId - PKEY PaymentPlans --- PlanId - PKEY PersonPaymentPlans --- PersonId - FKEY PlanId - FKEY ConfidenceLevel - INT 在这种情况下,执行此实体查询时: People .First(p =>

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

例如:

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;

信心级别不显示为可访问属性。如何访问此值,或者如何让我的EDMX公开此属性?

我猜您是先使用数据库,但它有点缺少自动更新此类更改的功能,您必须“半手动”完成此操作

首先打开您的EDMX文件,选择表示这两个表之间关系的行并将其删除,然后从数据库中更新模型,您应该可以获得几乎所需的结果

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

.Plans.First(p => p.PlanId == ppId).ConfidenceLevel;
这并不完全正确,因为EF将生成PersonPaymentPlans表,因为它包含两个以上的外键值。因此,您的查询看起来更像这样:

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

您是手动创建该列的吗?是的[extra characters],那么无法通过entity framework访问该列,您需要手动生成并执行sql查询,您可以使用entity framework执行该操作(我的意思是您可以执行原始sql查询)。您的问题似乎与我以前的问题类似,请参阅:如果您想直接使用entity framework实现这一点,您必须创建一个虚拟表(即另一种类型)来连接People和PlansHanks,它完全按照您所说的做了。这是一个有点恼人的是,没有直接联系到关系,但同时我也看不到任何方式,为工作。