好的,我完全为这个感到难过。我可能没有足够的信息可以在此处发布,但我什至不知道从哪里开始寻找。
我正在尝试在我的DAL.edmx文件上“从数据库更新模型”。我为以前未包含的 View 添加了一个字段。我尝试刷新,然后尝试重命名数据库中的 View 并从DAL中删除该 View ,以便重新添加它。两次我都
接下来,无缘无故,我尝试将重命名的 View 添加到DAL中,但出现了相同的异常。从DAL.tt手动删除无济于事。 Googled问题,只有2个不相关的结果。我什至不知道从哪里开始寻找。
我没有写它,但是这里是 View 的源sql(如果有帮助的话)。 EF不会添加重命名 View 的事实暗示它可能是在SQL中? SQL在mngmnt studio中运行良好。
SELECT ID, IssueID, IssueTypeID, IssueText, IssueCreateDate, WeekendDate, CustomerName, Employee,
CONVERT(DECIMAL(6, 2), AdjustedTotalRHours, 101) AS AdjustedTotalRHours, AdjustedTotalOHours,
AdjustedTotalRHours + AdjustedTotalOHours AS Hours, InvoiceNumber, AdjustedInvoiceAmount,
COALESCE
((SELECT SUM(InvoiceAmount) AS Expr1
FROM TrendingDataFinal AS I1
WHERE (InvoiceNumber = T1.InvoiceNumber) AND (CompanyID = T1.CompanyID) AND
(CalType = 'F') AND (Aident = T1.Aident)), 0) AS TotalInvoiceAmount, InvoiceDate,
ROUND(DATEDIFF(DAY, InvoiceDate, GETDATE()), 0) AS DaysOutstanding, Notes, Aident, EINC, IsClosed,
CompanyID,
(SELECT COUNT(ne.EntryID) AS Expr1
FROM Madison.Notes.Note AS n INNER JOIN
Madison.Notes.NoteEntry AS ne ON n.NoteID = ne.NoteId
WHERE (n.Key1 = T1.InvoiceNumber)) AS HasNotes, COALESCE
((SELECT TOP (1) CompanyName
FROM ReportingCompanies AS I1
WHERE (CompanyId = T1.CompanyID)), '') AS CompanyName, BranchName, PayStatus
FROM BillMan_ReportStage AS T1
任何建议,将不胜感激。
更新:使用相同的SQL创建了跨越新 View 的品牌,并通过相同的方法将其添加到DAL中,出现了相同的错误。
最佳答案
我有完全一样的问题。正如我注意到的那样,在将.edmx文件与Subversion合并后出现了该问题。在文本编辑器中查看.edmx文件,我发现了一个重复的EntitySetMapping条目。手动删除重复项后,问题已解决!
希望这可以帮助
关于c# - 修改DAL,System.ArgumentException, "An entry with the same key already exist"时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32783135/