我有一个表格,可以保存特定项目的部件号记录,如下所示:
create table ProjectParts
(
PartNumber varchar(20) not null,
ProjectID int not null,
Description varchar(max) not null,
primary key nonclustered (PartNumber, ProjectID)
);
我有一个会从多个地方收集库存信息的视图,但是现在我基本上有一个骨架:
create view ProjectQuantities as
select distinct
pp.PartNumber,
pp.ProjectID,
0 as QtyOnHand,
0 as QtyOnOrder,
0 as QtyCommitted
from
ProjectParts pp;
到目前为止,这么好。我进入Visual Studio中的EF设计器(我已经使用ProjectParts表创建了一个对象模型)并从数据库中更新了模型。我选择ProjectQuantities视图,单击确定。
EF尝试将表中的键作为所有列的组合来划分,但我修复了这一点,因此该对象的键是PartNumber
和ProjectID
列。我检查以确保验证,确实如此。
接下来,我在EF UI中的ProjectPart对象和ProjectQuantity对象之间添加1:1关联,然后单击“确定”。现在,当我尝试验证时,我收到消息Error 11008: Association 'ProjectQuantityProjectPart' is not mapped.
严重吗?它无法解决这个问题?好的,我选择链接,转到Mapping Details,然后添加ProjectParts表。它在关键关系中添加了表格和网格。我的工作已经完成。我运行验证。
对我来说没有运气。现在我收到错误Error 3021: Problem in mapping fragments starting at line (line number): Each of the following columnes in table ProjectParts is mapped to multiple conceptual side properties
。该消息列出了ProjectID和PartNumber列以及它们对我刚刚创建的关联的引用。
这阻止我完成任务。有没有人知道一种简单的方法来解决这个问题,以便在我收集有关项目及其各个部分的数据时收集数量信息?
谢谢!
答案 0 :(得分:4)