私はmsdnからコードファーストの新しいデータベースエンティティフレームワークを練習していました.主キーのないテーブルをコードファーストの新しいデータベースEFで作成できるかどうか知りたいですか?
6 に答える
EF がデータベースでできることと、データベースでできることには大きな違いがあります。
ほとんどのデータベースでは、主キーなしでテーブルを使用できます。ほとんどのデータベースでは、クラスター化インデックス/インデックス構成テーブル (または他のデータベース システムでの特定の用語) を使用せずにテーブルを作成することもできます。
それは何も悪いことではなく、PK のないテーブルを持つことは悪い考えであると述べるべきではありません。
いつものように、特定のテーブルのニーズと使用法に依存します。たとえば、ログ テーブルには PK は必要ありません。FK として使用されることはありません。
結論として、EF はすぐに使用できるキーのないテーブルをサポートしていません。いくつかの奇妙な回避策がありますが、私が見たものはどれも十分ではありません。それは残念です。
いいえ、できません。更新または削除操作を行うときに、Entity Framework がオブジェクトを追跡するためにキーを知る必要があるためです。
とにかく、PrimaryKey のないテーブルを用意するのは得策ではありません
.NET Core 2.1 以降、EF Core は主キーのないモデルをサポートします。
これは、エンティティ タイプではなくクエリ タイプの概念によって実現されます。https://docs.microsoft.com/en-us/ef/core/modeling/query-types
を参照してください
クエリ タイプの主な使用シナリオの一部を次に示します。
- アドホック FromSql() クエリの戻り値の型として機能します。
- データベース ビューへのマッピング。
- 主キーが定義されていないテーブルへのマッピング。
- モデルで定義されたクエリへのマッピング。
ただし、クエリの種類には制限があります。データベースで挿入、更新、または削除することはできません。また、ナビゲーション プロパティのサポートは限定されています。