TableAとArchivedTableAの2つのテーブルがあります。基本的にこれらは同一のテーブルですが、TableAの行はArchivedTableに移動されてアーカイブされます。
これらの2つのクラスが同じエンティティから継承するように、これをEntityFrameworkで表現するにはどうすればよいですか。POCOを使用しています。
TableAとArchivedTableAの2つのテーブルがあります。基本的にこれらは同一のテーブルですが、TableAの行はArchivedTableに移動されてアーカイブされます。
これらの2つのクラスが同じエンティティから継承するように、これをEntityFrameworkで表現するにはどうすればよいですか。POCOを使用しています。
この状況では継承を使用しないことをお勧めします。TableAからArchiveTableAにレコードを「アーカイブ」する場合でも、そのレコードはベーステーブルにあります。
Julie Lermanは、継承の落とし穴のいくつかについての優れたMSDN記事を公開しています。 http://msdn.microsoft.com/en-us/magazine/jj553510.aspx
たとえば、共通のプロパティを持つ基本クラスを作成します
public class BaseEntity
{
public virtual int Id {get;set;}
public DateTime CreatedOn {get;set;}
}
次に、次のような共通の列があるため、この基本クラスから継承するPOCOオブジェクトを作成します。
public class TableA : BaseEntity
{
public string NewName {get;set;}
}
public class ArchivedTableA : BaseEntity
{
public string Name {get;set;}
}
あなたは明らかにこれの上にEF配管の形でDbSetマッピングなどを行う必要があります...