मेरे पास अपने डेटाबेस में एक तालिका है, जिसे SEntries कहा जाता है (क्रिएट टेबल स्टेटमेंट के नीचे देखें)। इसमें एक प्राथमिक कुंजी, विदेशी कुंजियों का एक जोड़ा और इसके बारे में कुछ खास नहीं है। मेरे डेटाबेस में उसी के समान कई टेबल हैं, लेकिन किसी कारण से, यह टेबल EF प्रॉक्सी क्लास पर "डिस्क्रिमिनेटर" कॉलम के साथ समाप्त हो गई।
इस तरह से कक्षा को 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; }
...
}
जब मैं उस तालिका में एक नई पंक्ति जोड़ने का प्रयास करता हूं, तो मुझे त्रुटि मिलती है:
System.Data.SqlClient.SqlException: Invalid column name 'Discriminator'.
यह समस्या केवल तब होती है जब आप अपनी C # क्लास को दूसरी क्लास से इनहेरिट कर रहे होते हैं, लेकिन सेनेट्री को कुछ भी विरासत में नहीं मिलता है (जैसा कि आप ऊपर देख सकते हैं)।
इसके अलावा, एक बार जब मुझे डीबगर पर टूल-टिप मिलती है, जब मैं सेनेट्री प्रॉपर्टी के लिए EMData उदाहरण पर माउस करता हूं, तो यह प्रदर्शित होता है:
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...
कोई सुझाव या विचार जहां इस मुद्दे की तह तक जाना है? मैंने मेज, प्राथमिक कुंजी और कुछ अन्य चीजों के नाम बदलने की कोशिश की, लेकिन कुछ भी काम नहीं करता है।
एसक्यूएल-तालिका:
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