Entity Data Model Wizard を使用して、SQL Server のオブジェクト カタログ ビュー (sys.objects、sys.tables、sys.columns など) に基づいて EF データ モデル (POCO を含む edmx) を生成しました。 DbContext の DbSet プロパティを介して任意のデータを取得すると、EF は ModelValidationException をスローし、エンティティにキーが定義されていないと不平を言います。
エンティティ POCO を生成する T4 テンプレートを簡単に変更して、[Key] 属性でマークされたダミー プロパティを含めることができます。 . キー列の名前を選択することも問題ですが、クラスごとに一意のキー列名の GUID を生成するなどのことを行うことができます。
しかし、このモデルは厳密に読み取り専用であるため、EF にキー列は必要ないと伝える、より適切で適切な方法はありませんか?
補遺: Entity Framework Power Tools - Reverse Engineer Code Firstツールを使用すると、エンティティごとに(から派生したEntityTypeConfiguration
) マッピング クラスが作成され、エンティティに定義キーがない場合は、エンティティ内のすべてのフィールドを使用してマッピング クラスが定義されます。