これはSQL CEまたはEFのいずれかで私の最初の進出であり、誤解が多いかもしれません。私は多くのブログエントリを検索しましたが、まだこの権利を得ることはできません。EFコードで開発されたSQL CEデータベースのmany-to-one ForeignKeys
私には、実行中のレースの登録用のMVC3 Webサイトがあります。私はRaceEventsテーブルとRunnersテーブルを持っています。そこでは各RaceEventには多数のランナーが登録されています。つまり、Many-to-Oneです。私が把握することができますできるだけ多く、
public class RaceEvent
{
[Required]
public int Id { get; set; }
public virtual ICollection<Runner> Runners { get; set; }
}
public class Runner
{
[Required]
public int Id { get; set; }
[Required]
public int RaceEventId { get; set;}
[ForeignKey("RaceEventId")]
public RaceEvent RaceEvent { get; set; }
}
は、働くべき:ここではPOCOさんが取り除か無関係なデータです。私が理解しているように、RaceEventIdはRaceEventの外来キーであることを慣習で理解する必要があります。これで十分ではない場合は、ForeignKey属性を使って説明します。
ただし、動作していないようです。私は新しいランナーを挿入するたびに、RaceEventsテーブルに新しいエントリを挿入しています。また、ServerExplorerのテーブルダイアグラムを見ると、Runnersテーブルダイアグラムの上部に2つの金色のキーが表示されます.1つはIdのプロパティでPrimaryKeyとして識別され、もう1つはRaceEventIdでPrimaryKeyとして識別されませんTable RaceEventsではなく、Table Runnersのプロパティに表示されます。私はIdのゴールドキーを期待していますが、RaceEventIdのシルバーのForeignKeyは期待しています。
FWIW、私は本当にRaceEventのICollectionについては気にしませんが、ブログのエントリーはすべてそれが必要であることを示唆していました。
誰でも私にこの権利を手伝うことができますか?
ありがとうございました。
ちょっとしたことをクリアするために、生成されたテーブルの主キーと外部キーの構造は正しいと思われますが、サーバーエクスプローラは正しく表示していません。 ErikEJのすばらしいSQL Server Compact Toolboxをダウンロードすると、Runner.Idの主キーとRunner.RaceEventIdの外部キーの表構造が正しく表示されます。 –