3

IIS サーバーで Entity Framework を使用しています。私のサービスには、認証されたユーザーがアクセスできるメソッドがいくつかあります。

メソッドの 1 つの例を次に示します。

public bool SaveTruckInventoryReading(TruckInventory truckInventory)
{
  entities.AddToTruckInventories(truckInventory);
  entities.SaveChanges();
  return true;
}

具体的な質問をしたかったので、あまり情報を入れませんでした。TruckInventory はエンティティ オブジェクトです。彼らが渡すクラスを作成する必要がありますか、それともオブジェクトを私のメソッドに渡すことを許可する適切な方法ですか?

クラスを作成する場合は、それをエンティティ オブジェクトに変換する必要があります。私には、必要のない余分なコードのように思えます。

上記のようにエンティティ オブジェクトを公開することは、情報を受け入れる方法として不適切ですか?それともジェネリック クラスで渡す必要がありますか?

4

2 に答える 2

1

これに対する「正しい」答えはありません。

POCO である場合TruckInventory、そのまま公開しても大きな害はありません。ただし、これは関心の分離に違反する可能性があると主張する人がたくさんいます。

関心の分離が問題になる場合はTuckInventory、消費者にアクセスしてもらいたい情報のみを公開する DTO を使用します。この方法を使用する場合、AutoMapper などのマッパーを使用して DTO からエンティティにマップする必要があります。

于 2013-05-31T14:14:30.607 に答える
0

この方法でエンティティを直接公開するのは良い考えではないと思います。DTOを作成してサービスに渡し、DTOをエンティティに変換してDBに保存する必要があります。

理由は、EF クラスがシリアル化用に設計されていないためです。サーバーに送信する必要のない多くの追加情報があります

于 2013-05-31T14:12:53.077 に答える