EF Code First "Geçersiz sütun'" 'elde edilir; ama hiçbir miras adı
Benim veritabanı Nöbetçi denilen (aşağıya bakınız CREATE TABLE deyimi bir tablo var. Birincil anahtar, yabancı anahtarları ve hiçbir şey hakkında özel bir çift. Benim veritabanı birçok kez buna benzer var, ama nedense, "" EF Proxy Sınıfı. sütun Ayırıcısını sonunda bu tablo
Bu C sınıfı ilan yapılır"#:
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 eklemek istediğimde şöyle bir hata alıyorum:
System.Data.SqlClient.SqlException: Invalid column name 'Discriminator'.
Bu sorun hakkında bulduğum her şeyi, sadece C devralmasını oluşur# başka bir sınıftan sınıf, ancak Nöbetçi bir şey devralmasını değil yukarıda gördüğünüz gibi).
Ben Nöbetçi özelliği için EMData örneği üzerinde fare ne zaman hata ayıklayıcı aracı ihbar alınca buna ek olarak, 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...
Herhangi bir öneri ya da bu konu altına almak için fikirler? Tablo, birincil anahtar ve diğer bir kaç şey yeniden adlandırma denedim, ama olmadı.
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
CEVAP
Meğer bu Varlık Çerçevesi farz olan herhangi bir sınıf devralır bir POCO sınıf olduğunu eşlenen bir tablo üzerinde veritabanı gerektirir bir sütun Ayırıcısını bile türetilmiş sınıf olmayacak kayıtlı bir DB.
Çözüm oldukça basit ve sadece [NotMapped] türetilmiş sınıf bir nitelik olarak eklemek lazım.
Örnek:
class Person
{
public string Name { get; set; }
}
[NotMapped]
class PersonViewModel : Person
{
public bool UpdateProfile { get; set; }
}
Eğer veritabanı üzerinde Kişi masaya Kişi sınıfı göster eğer şimdi bile, bir "elde edilir türetilmiş bir sınıf olduğundan" sütun oluşturulmayacak [NotMapped].
Ek bir ipucu olarak, [NotMapped] DB üzerinde bir alana göster istemiyorum özelliklerini kullanabilirsiniz.
Bir tespit "geçersiz tarih" ...
Nedir &; önbellek-dostu" code"?...
Eclipse "Geçersiz Proje yeni proj...
Emülatör başlamıyor Android, " gös...
Quot; hedef cihazda hiçbir Şey olmuyor...