エンティティ フレームワークについて学習するためにフォローしているチュートリアルでは、エンティティについて言及し続けています。データベース コンテキスト クラスでのシノニムとして使用されることがよくdbsets<>
ありますが、文字通りの意味は何ですか?
エンティティ フレームワークがどのように機能するかは既に知っていますが、単語の意味がわかりません。
エンティティ フレームワークについて学習するためにフォローしているチュートリアルでは、エンティティについて言及し続けています。データベース コンテキスト クラスでのシノニムとして使用されることがよくdbsets<>
ありますが、文字通りの意味は何ですか?
エンティティ フレームワークがどのように機能するかは既に知っていますが、単語の意味がわかりません。
Entity Framework では、エンティティは概念モデル (またはストア モデルにマップされるクラス モデル) のクラスとほぼ同等です。
ドメイン モデルの用語では、エンティティは
属性によって定義されるのではなく、連続性とアイデンティティの糸によって定義されるオブジェクト。
(出典:ウィキペディア)
または (おそらく) のような値 objectとは対照的に、「ID を持つオブジェクト」についてはかなり一口です。Aは、彼が「誰」であるかによって識別されるため、実体です。同じ名前の 2 人の顧客は、依然として 2 人の顧客です。DateTime
Address
Customer
したがって、エンティティは、ビジネス ドメインの対象となる「もの」として大まかに定義できます。顧客/ユーザーとシステム デザイナー/開発者の両方がユビキタス言語で話していること。そして EF では、それらはクラスによって表されます。
ではありませんDbSet
。はDbSet
、エンティティ オブジェクトを提供するリポジトリです。
エンティティをモデルと呼んでいる人をよく見かけます。この用語の由来はわかりませんが (偶然というにはあまりにも頻繁に使われているようです)、正しくないと思います。それはほとんど混乱しています。EFのモデルはストア モデルまたは概念モデルのいずれかであるため、エンティティのコレクションです。モデルは、任意の数のエンティティの任意の数の属性を含むビュー モデルにすることもできます。
Person オブジェクトを例に取り、Person データがデータベースにポストされ、層を移動しているとします。
私の UI では、Person Model または ViewModel と呼んでいます。
それが私のビジネス層にあるとき、私はそれを Person Business Object と呼びます。
それが私のデータレイヤーにあるとき、私はそれを Person Entity と呼びます。
異なる層の異なるオブジェクトに移動しているのと同じデータです。エンティティは、データ アクセス層で Person データを保持しているオブジェクトの名前にすぎません。