我最近在数据库中更新了一个关系表,以增加一个字段。当我从数据库更新实体模型时,此关系尚未更新为包含此字段。如何在模型中访问此属性?
例子:
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公开此属性?
我猜您首先使用数据库,但是它缺少自动更新此类更改的功能,因此您必须“半手动”进行操作。
首先,打开您的EDMX文件,然后选择表示这两个表之间的关系的线并将其删除,然后从数据库中更新您的模型,您应该会得到几乎想要的结果。
我说这几乎是因为您在查询中提到了
.Plans.First(p => p.PlanId == ppId).ConfidenceLevel;
由于EF将包含两个以上的外键值,因此EF会生成您的PersonPaymentPlans表,因此,这将是不正确的。因此,您的查询将更像这样:
People
.First(p => p.PersonId == pid)
.PersonPaymentPlans.First(p => p.PlanId == ppId)
.ConfidenceLevel;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句