次のようなデータコンテキストをEF5RCで作成しようとしました。
class WordContext : DbContext {
public DbSet<Word> PossibleWords { get; set; }
public DbSet<Word> UsedWords { get; set; }
}
データベースを更新しようとすると、次のような例外が発生しました。タイプごとの複数のオブジェクトセットはサポートされていません。オブジェクトセット「PossibleWords」と「UsedWords」の両方に、「TestProject.Word」タイプのインスタンスを含めることができます。
いくつかのグーグルの後、このようなデータコンテキストを構造化することはEFでは実際には不可能であるように見えます。
私の質問は次のとおりです。このようなデータを格納するための優れたコードファースト設計は何ですか?
些細なことは次のようなものかもしれないと思います:
class WordContext : DbContext {
public DbSet<Words> Words { get; set; }
}
class Words {
public int ID { get; set; }
public IList<string> PossibleWords { get; set; }
public IList<string> UsedWords { get; set; }
}
しかし、これはひどい感じです。
編集:もちろん、もう1つの簡単な方法は、次のような2つの異なる単語タイプを使用することです。
クラスPossibleWord{...}クラスBannedWord{...}
実は、書き留めたので、それほど悪くはないようです、うーん...
Edit2:
他の誰かがこれに遭遇した場合に備えて、最終的にどのように解決されたかを示します。
class Word {
[Key]
public string String { get; set; }
}
class PossibleWord : Word { }
class UsedWord : Word { }
class WordContext : DbContext {
public DbSet<PossibleWord> PossibleWords { get; set; }
public DbSet<UsedWord> UsedWords { get; set; }
}