c# - EF 失败将 View 映射到对象

标签 c# sql-server entity-framework-4.1

我有一个表,其中保存特定项目的零件号记录,如下所示:

create table ProjectParts
    (
    PartNumber varchar(20) not null,
    ProjectID int not null,
    Description varchar(max) not null,
    primary key nonclustered (PartNumber, ProjectID)
    );

我有一个将从多个地方收集库存信息的 View ,但现在我基本上有了一个框架:

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 View ,单击“确定”。

EF 尝试将表上的键预测为所有列的组合,但我修复了该问题,因此对象的键是 PartNumberProjectID 列。我检查以确保这是有效的,而且确实如此。

接下来,我在 EF UI 中的 ProjectPart 对象和 ProjectQuantity 对象之间添加 1:1 关联,然后单击“确定”。现在,当我尝试验证时,我收到消息错误 11008:关联“ProjectQuantityProjectPart”未映射。 认真的吗?这事还想不通吗?好的,我选择该链接,转到“映射详细信息”,然后添加“ProjectParts”表。它添加了两个表并网格化了关键关系。我的工作完成了。我运行验证。

我没有运气。现在,我收到错误错误 3021:从行(行号)开始映射片段时出现问题:表 ProjectParts 中的以下每一列都映射到多个概念性侧面属性。该消息列出了 ProjectID 和 PartNumber 列以及它们对我刚刚创建的关联的引用。

嗯嗯!当然有多个引用!这是一个 1:1 复合键,它必须有多个引用!

这阻碍了我完成工作。有谁知道解决此问题的简单方法,以便我在收集有关项目及其组成部分的数据时可以收集数量信息?

谢谢!

最佳答案

关于c# - EF 失败将 View 映射到对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7705863/

相关文章:

c# - machine.config 路径

c# - 如何在 C# 中通过 snmp 获取打印机型号?

c# - 如何验证方法之外的条件

tsql - 使用 DbContext.Database.SqlQuery 在 EntityFramework 中快速加载

.net - Entity Framework 外键到非主键字段

C# 内联条件字符串 [] 数组

sql-server - 无法在 SSMS 中连接到我的本地 SQL Server 实例

c# - 如何更新 unpivot 查询中的列我的查询附加 SQL Server?

sql-server - 非分区表的 sys.partition 中的多个记录

asp.net-mvc-3 - 升级到EF 4.1后,出现System.NullReferenceException