私はこの言葉の意味が何であるかを理解するのに混乱しています:
Entity
、Model
、DataModel
、ViewModel
どんな体でも私を理解するのに役立つことができますか?皆さん、ありがとうございました。
私はここでking.netであなたのポイントを見逃していないことを願っています.
とにかく、エンティティモデリングまたはエンティティ関係モデリング(ERD)について話していると仮定します。
エンティティ間に関係を追加すると、「データモデル」が作成されます。現実世界のシステムとそのシステムの内部エンティティ/オブジェクトをモデリングしました。次のステップは、それを正規化して「通常の形式」に適合させることです。
ERDの用語では、「論理」モデルと「物理」モデルがあります。論理は、データモデルを実装するために必要な技術的詳細を提示する単純で高レベルの用語でデータモデルを説明します。システムソリューションの概要を表します。物理モデルには、システムを実際に実装するために必要な技術的な詳細(「多対多」の関係を実装するために必要な「多対多の結合テーブル」など)が含まれます。
オンラインのチュートリアルは次のとおりです(ただし、数千個あるはずです)。
関連するコンテキストでの「モデル」と「モデルの表示」の意味がよくわかりません。これをModel-View-Controllerパラダイム(MVC)と混同しているかどうかはわかりません。ここで、モデルはデータコンポーネントであり、ビューはそのデータのオブザーバー(テーブルまたはグラフUIコンポーネントなど)を表します。 「model view controller」または「MVC」を説明するオンラインがたくさんあります。
これがお役に立てば幸い、ウェイン
これらの用語の定義は非常にあいまいです。さまざまな場所でさまざまな定義が見つかります。
Entity:エンティティは、データベースオブジェクトにレコードとして保存されたドメインオブジェクトの単一インスタンスを表します。テーブルの列として表すいくつかの属性があります。
Model:モデルは通常、問題またはドメイン空間に関連する実世界のオブジェクトを表します。プログラミングでは、オブジェクトを表すクラスを作成します。モデルと呼ばれるこれらのクラスには、いくつかのプロパティとメソッドがあります(オブジェクトの動作を定義します)。
ViewModel:ViewModelという用語は、[〜#〜] mvvm [〜#〜](モデルビューViewModel)デザインパターン。ビューによってレンダリングされるデータが2つの異なるオブジェクトから取得される場合があります。このようなシナリオでは、ビューに必要なすべてのプロパティで構成されるモデルクラスを作成します。ドメインモデルではなく、ViewModelです。特定のビューで使用されているためです。また、実世界のオブジェクトを表していません。
DataModel:問題を解決するために、オブジェクトは相互作用します。一部のオブジェクトはそれらの間の関係を共有し、その結果、オブジェクトとそれらの間の関係を表すデータモデルを形成します。
たとえば、顧客の注文を管理するアプリケーションでは、顧客と注文のオブジェクトがある場合、これらのオブジェクトは多対多の関係を共有します。データモデルは、最終的にはオブジェクトの相互作用に依存します。データベースでは、データモデルは他のテーブルを参照するテーブルのネットワークと見なされます。
オブジェクト関係の詳細については、次を参照してください。 オブジェクト関係の基礎
詳細については、 Entity vs Model vs ViewModel vs DataModel をご覧ください。
まず、エンティティについて知るには、クラスについて知る必要があります。それらはすべて同じフィールドを表しますが、用語は宣言に基づいて変わります。
例として、任意のデータベース[SQL、Oracle、Informix、Cassandra ..]のテーブルを考えてみましょう。
クラス:
通常、テーブルは、edmxまたはdbmxに追加されるまでクラスと見なされます。
//Student class
public class Student()
{
//Properties
public int StudentNumber;
public string StudentName;
}
エンティティ:
テーブルをdbmx/edmxにドラッグドロップ/追加した後、エンティティと呼ばれます。
各エンティティは、対応するクラスから生成され、エンティティを使用して操作を実行するために使用される属性を追加できます
linqまたはエンティティ。
データ・モデル:
テーブル内のすべてのフィールドが含まれます。
DATAMODELはcshtmlまたはコントローラーへの直接のクラス参照であり、属性にアクセスしてCRUD操作を実行できます。
ビューモデル:
例:想定してみましょう
//Student class
public class Student()
{
//Properties
public int StudentNumber;
public string StudentName;
}
//Marks Class
Public class Marks()
{
public int Maths;
public int Physics;
public int Chemistry;
//Now sometimes situations occur where we have to use one datamodel inside //other datamodel.
public Student StudentModel;
}
エンティティは、Entity Frameworkとしてのオブジェクトリレーショナルマッピング(ORM)内の実世界の要素の表現です。この表現はデータベースのテーブルにマップされ、その属性は列に変換されます。エンティティは、C#の次の例に示すように、単純なクラスであるPOCOクラスを使用して記述されます。
using System;
using System.Collections.Generic;
using System.Text;
namespace MyAplication.Entity
{
public class Person
{
public long PersonId { get; set; }
public string Name { get; set; }
public short Age { get; set; }
}
}
UI作成の操作は複雑なタスクです。物事を整理するために、プログラマーはアプリケーションをレイヤーに分離します。
各レイヤーはタスクを担当し、これによりコードが混乱するのを防ぎます。このシナリオでは、MVCやMVVMなどのアーキテクチャパターンが表示されます。
MVC内には、以前に保存されたデータを表す層があります。これは、前の例でモデル化された人物のインスタンスです。この層がモデルです。このテンプレートは、ビューの構築に使用されます。
MVVMアーキテクチャのViewModelは、MVCアーキテクチャのモデルによく似ています。ただし、ViewModelは、ビューの構築に必要な情報のみを含むデータの単純化された表現です。
using System;
using System.Collections.Generic;
using System.Text;
using MyAplication.Web.ViewModel.BaseViewModel;
namespace MyAplication.Web.ViewModel.Person
{
public class PersonNameViewModel : BaseViewModel<string>
{
//I just neet the name
public string Name { get; set; }
}
}
実世界のエンティティを表す要素間に存在する関係を確立するのは、単なる抽象モデル(このモデルはMVCレイヤーモデルとは異なります)です。これは非常に包括的なテーマです。