Ich habe eine EDMX (Entity Framework 6.1.3), die ich verwende, um zwei verschiedene Datenbanken abzufragen. Es gibt einige kleine Unterschiede zwischen den Datenbanken, aber ich möchte nur die gemeinsamen Spalten. Ich generierte das EDMX aus Datenbank A und entfernte die Spalten, die nicht in Datenbank B waren, aus dem Diagramm und generierte den Code neu.EF 6 Abfrage enthält nicht zugeordnete Spalten, die die Abfrage brechen
Wenn ich Datenbank B abfrage, enthält die Abfrage die Spalten, die ich entfernte, obwohl das letzte SELECT nicht. Dies bedeutet, dass die Abfrage fehlschlägt.
Die Tabellenzuordnung zeigt die Spalten, aber mit nichts auf dem Wert/Objektseite:
Die Ausnahme ist:
System.Data.Entity.Core.EntityCommandExecutionException : An error occurred while executing the command definition. See the inner exception for details.
----> System.Data.SqlClient.SqlException : Invalid column name 'ValidFromDate'.
Invalid column name 'ValidToDate'.
Invalid column name 'LastPulled'.
Invalid column name 'IsCurrent'.
Die Abfrage, die an den Server gesendet wird ist:
SELECT TOP (1)
[c].[FirstName] AS [FirstName],
[c].[LastName] AS [LastName],
[c].[HomePhone] AS [HomePhone],
[c].[WorkPhone] AS [WorkPhone],
[c].[MobilePhone] AS [MobilePhone],
[c].[Email] AS [Email],
[c].[Fax] AS [Fax]
FROM (SELECT
[Person].[FirstName] AS [FirstName],
[Person].[LastName] AS [LastName],
[Person].[HomePhone] AS [HomePhone],
[Person].[WorkPhone] AS [WorkPhone],
[Person].[MobilePhone] AS [MobilePhone],
[Person].[Email] AS [Email],
[Person].[Fax] AS [Fax],
[Person].[ValidFromDate] AS [ValidFromDate],
[Person].[ValidToDate] AS [ValidToDate],
[Person].[LastPulled] AS [LastPulled],
[Person].[IsCurrent] AS [IsCurrent]
FROM [dbo].[Person] AS [Person]) AS [c]
Wie Sie sehen können, gibt es eine innere Abfrage, die die zusätzlichen Spalten enthält.
An diesem Punkt bin ich irgendwie ratlos, warum das passiert. Wie entferne ich diese Spalten von beiden Seiten des Mappings oder verhindere sonst, dass EF unerwünschte Spalten in irgendeinen Teil der Abfrage legt?
Interessant - ich habe diese gesehen, wenn ich eine Ansicht in eine EDMX-Datei einfüge, ich kann mich nicht erinnern, eine auf einer Tabellendefinition zu haben. Toller Fund - froh, dass Sie Ihr Problem lösen konnten! – Borophyll