Saya memiliki tabel di database saya yang disebut SEntries (lihat di bawah pernyataan CREATE TABLE). Ini memiliki kunci utama, beberapa kunci asing dan tidak ada yang istimewa tentang itu. Saya memiliki banyak tabel di basis data saya yang mirip dengan yang itu, tetapi untuk beberapa alasan, tabel ini berakhir dengan kolom "Diskriminator" pada Kelas Proksi EF.
Ini adalah bagaimana kelas dideklarasikan dalam C #:
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; }
...
}
Ketika saya mencoba menambahkan baris baru ke tabel itu, saya mendapatkan kesalahan:
System.Data.SqlClient.SqlException: Invalid column name 'Discriminator'.
Masalah ini hanya terjadi jika Anda mewarisi kelas C # Anda dari kelas lain, tetapi SEntry tidak mewarisi dari apa pun (seperti yang Anda lihat di atas).
Selain itu, setelah saya mendapatkan tool-tip pada debugger ketika saya mengarahkan mouse ke instance EMData untuk properti SEntries, ini akan menampilkan:
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...
Adakah saran atau ide untuk sampai ke bagian bawah masalah ini? Saya mencoba mengubah nama tabel, kunci utama dan beberapa hal lainnya, tetapi tidak ada yang berhasil.
SQL-Table:
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