Tôi có một bảng trong cơ sở dữ liệu của mình được gọi là SEntries (xem bên dưới câu lệnh CREATE TABLE). Nó có một khóa chính, một vài khóa ngoại và không có gì đặc biệt về nó. Tôi có nhiều bảng trong cơ sở dữ liệu của mình tương tự như bảng đó, nhưng vì một số lý do, bảng này đã kết thúc với cột "Phân biệt đối xử" trên Lớp Proxy của EF.
Đây là cách lớp được khai báo trong 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; }
...
}
Khi tôi cố gắng thêm một hàng mới vào bảng đó, tôi gặp lỗi:
System.Data.SqlClient.SqlException: Invalid column name 'Discriminator'.
Vấn đề này chỉ xảy ra nếu bạn đang kế thừa lớp C # của mình từ một lớp khác, nhưng SEntry không được thừa hưởng từ bất cứ điều gì (như bạn có thể thấy ở trên).
Ngoài ra, một khi tôi nhận được mẹo công cụ về trình gỡ lỗi khi tôi di chuột qua đối tượng EMData cho thuộc tính SEntries, nó sẽ hiển thị:
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...
Bất kỳ đề xuất hoặc ý tưởng để đi đến tận cùng của vấn đề này? Tôi đã thử đổi tên bảng, khóa chính và một vài thứ khác, nhưng không có gì hoạt động.
Bảng SQL:
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