Veritabanımda SEntries adlı bir tablo var (aşağıdaki tablo CREATE deyimi bakın). Birincil anahtarı, birkaç yabancı anahtarı ve bu konuda özel bir şey yok. Veritabanımda buna benzer birçok tablo var, ancak bazı nedenlerden dolayı bu tablo EF Proxy Sınıfı'nda bir "Diskriminator" sütunu ile son buldu.
Sınıf C # olarak şöyle bildirilir:
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; }
...
}
Bu tabloya yeni bir satır eklemeye çalıştığımda hatayı alıyorum:
System.Data.SqlClient.SqlException: Invalid column name 'Discriminator'.
Bu sorun yalnızca C # sınıfınızı başka bir sınıftan miras alıyorsanız oluşur, ancak SEntry hiçbir şeyden miras kalmaz (yukarıda gördüğünüz gibi).
Buna ek olarak, bir kez ben SEntries özelliği için EMData örneği üzerinde fare hata ayıklayıcı araç ipucu almak, görüntüler:
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...
Bu sorunun en altına nereden ulaşılacağı konusunda herhangi bir öneriniz veya fikriniz var mı? Tabloyu, birincil anahtarı ve birkaç şeyi yeniden adlandırmayı denedim, ancak hiçbir şey çalışmıyor.
SQL Tablo:
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