40

私はmsdnからコードファーストの新しいデータベースエンティティフレームワークを練習していました.主キーのないテーブルをコードファーストの新しいデータベースEFで作成できるかどうか知りたいですか?

4

6 に答える 6

51

EF がデータベースでできることと、データベースでできることには大きな違いがあります。

ほとんどのデータベースでは、主キーなしでテーブルを使用できます。ほとんどのデータベースでは、クラスター化インデックス/インデックス構成テーブル (または他のデータベース システムでの特定の用語) を使用せずにテーブルを作成することもできます。

それは何も悪いことではなく、PK のないテーブルを持つことは悪い考えであると述べるべきではありません。

いつものように、特定のテーブルのニーズと使用法に依存します。たとえば、ログ テーブルには PK は必要ありません。FK として使用されることはありません。

結論として、EF はすぐに使用できるキーのないテーブルをサポートしていません。いくつかの奇妙な回避策がありますが、私が見たものはどれも十分ではありません。それは残念です。

于 2015-11-02T12:59:48.303 に答える
28

いいえ、できません。更新または削除操作を行うときに、Entity Framework がオブジェクトを追跡するためにキーを知る必要があるためです。

とにかく、PrimaryKey のないテーブルを用意するのは得策ではありません

于 2013-03-13T09:27:20.180 に答える
10

.NET Core 2.1 以降、EF Core は主キーのないモデルをサポートします。
これは、エンティティ タイプではなくクエリ タイプの概念によって実現ますhttps://docs.microsoft.com/en-us/ef/core/modeling/query-types を参照してください

クエリ タイプの主な使用シナリオの一部を次に示します。

  • アドホック FromSql() クエリの戻り値の型として機能します。
  • データベース ビューへのマッピング。
  • 主キーが定義されていないテーブルへのマッピング。
  • モデルで定義されたクエリへのマッピング。

ただし、クエリの種類には制限があります。データベースで挿入、更新、または削除することはできません。また、ナビゲーション プロパティのサポートは限定されています。

于 2019-01-29T13:41:28.937 に答える