Ich habe eine Tabelle in meiner Datenbank mit dem Namen SEntries (siehe unten die Anweisung CREATE TABLE). Es hat einen Primärschlüssel, ein paar Fremdschlüssel und nichts Besonderes. Ich habe viele Tabellen in meiner Datenbank, die dieser ähnlich sind, aber aus irgendeinem Grund endete diese Tabelle mit einer Spalte "Diskriminator" in der EF-Proxy-Klasse.
So wird die Klasse in C # deklariert:
public class SEntry
{
public long SEntryId { get; set; }
public long OriginatorId { get; set; }
public DateTime DatePosted { get; set; }
public string Message { get; set; }
public byte DataEntrySource { get; set; }
public string SourceLink { get; set; }
public int SourceAppId { get; set; }
public int? LocationId { get; set; }
public long? ActivityId { get; set; }
public short OriginatorObjectTypeId { get; set; }
}
public class EMData : DbContext
{
public DbSet<SEntry> SEntries { get; set; }
...
}
Wenn ich versuche, dieser Tabelle eine neue Zeile hinzuzufügen, wird folgende Fehlermeldung angezeigt:
System.Data.SqlClient.SqlException: Invalid column name 'Discriminator'.
Dieses Problem tritt nur auf, wenn Sie Ihre C # -Klasse von einer anderen Klasse erben, SEntry jedoch nichts erbt (wie Sie oben sehen können).
Sobald ich den Tooltip zum Debugger erhalte, wenn ich mit der Maus über die EMData-Instanz für die SEntries-Eigenschaft fahre, wird außerdem Folgendes angezeigt:
base {System.Data.Entity.Infrastructure.DbQuery<EM.SEntry>} = {SELECT
[Extent1].[Discriminator] AS [Discriminator],
[Extent1].[SEntryId] AS [SEntryId],
[Extent1].[OriginatorId] AS [OriginatorId],
[Extent1].[DatePosted] AS [DatePosted],
[Extent1].[Message] AS [Message],
[Extent1].[DataEntrySource] AS [DataE...
Irgendwelche Vorschläge oder Ideen, wo Sie dieser Ausgabe auf den Grund gehen können? Ich habe versucht, die Tabelle, den Primärschlüssel und einige andere Dinge umzubenennen, aber nichts funktioniert.
SQL-Tabelle:
CREATE TABLE [dbo].[SEntries](
[SEntryId] [bigint] IDENTITY(1125899906842624,1) NOT NULL,
[OriginatorId] [bigint] NOT NULL,
[DatePosted] [datetime] NOT NULL,
[Message] [nvarchar](500) NOT NULL,
[DataEntrySource] [tinyint] NOT NULL,
[SourceLink] [nvarchar](100) NULL,
[SourceAppId] [int] NOT NULL,
[LocationId] [int] NULL,
[ActivityId] [bigint] NULL,
[OriginatorObjectTypeId] [smallint] NOT NULL,
CONSTRAINT [PK_SEntries] PRIMARY KEY CLUSTERED
(
[SEntryId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[SEntries] WITH CHECK ADD CONSTRAINT [FK_SEntries_ObjectTypes] FOREIGN KEY([OriginatorObjectTypeId])
REFERENCES [dbo].[ObjectTypes] ([ObjectTypeId])
GO
ALTER TABLE [dbo].[SEntries] CHECK CONSTRAINT [FK_SEntries_ObjectTypes]
GO
ALTER TABLE [dbo].[SEntries] WITH CHECK ADD CONSTRAINT [FK_SEntries_SourceApps] FOREIGN KEY([SourceAppId])
REFERENCES [dbo].[SourceApps] ([SourceAppId])
GO
ALTER TABLE [dbo].[SEntries] CHECK CONSTRAINT [FK_SEntries_SourceApps]
GO