私はWorkItemとTestSuiteという2つのエンティティを持っています。ここでWorkItemは抽象クラスであり、TestSuiteはそれを実装しています。問題は、TestSuiteのプロパティをデータベースの列にマップする方法ですか? Workitemの場合は、以下のように私はそれを行うことができます。しかし、TestSuiteの場合、私はできません。 ReSharperはPropertyメソッドを提供しません。TPT、Entity Frameworkで派生クラスの列をマップする方法は?
派生クラスの列をマップする方法は?次の例では、WORKITEM_TEST_SUITE.TEST_SUITE_TYPE_ID列をTestSuiteEntityクラスにマップする方法は?可能です? EFが私のために列名を作成するという事実と一緒に生きていきますか?
私はこれまで何をしましたか?
- 私は私が列マッピングに対する制御を持つことが重要である列マッピング
多くのことを検索し、唯一のテーブルのマッピングを持つすべての記事のお得な情報、及びません。
作業項目のエンティティ:
modelBuilder.Entity<WorkItemEntity> ().ToTable ("WORKITEM");
modelBuilder.Entity<WorkItemEntity> ().HasKey (k => k.Id);
modelBuilder.Entity<WorkItemEntity> ().Property (p => p.Id).HasColumnName ("ID");
ワークアイテムテーブル:
CREATE TABLE [dbo].[WORKITEM]
(
[ID] INT NOT NULL PRIMARY KEY IDENTITY(1,1),
-- other columns
)
TestSuiteのエンティティ:テストスイートのものが格納されている
modelBuilder.Entity<TestSuiteEntity> ().ToTable ("WORKITEM_TEST_SUITE");
modelBuilder.Entity<TestSuiteEntity>()//--> no property method!
表。
CREATE TABLE [dbo].[WORKITEM_TEST_SUITE] ( [ID] INT NOT NULL PRIMARY KEY,
[TEST_SUITE_TYPE_ID] INT NOT NULL,
-- other columns)
更新:
可能性のインテリセンス/ ReSharperのを除外するために数回は一日後に、使用可能なメソッド、正しくプロパティをロードしていないため、私は、Visual Studioを再起動したという事実にもかかわらずプロパティメソッドが表示されます。