4

ビジネス オブジェクトに列挙型が定義されています。

ただし、この列挙型はデータ転送オブジェクトで定義されています。

dto 列挙型は、ビジネス オブジェクトの型ではありません。これは、それらが互いを認識する必要がないためです。

クライアントからこの dto を取得し、dto をビジネス オブジェクトにマップしてデータベースにデータを挿入すると、渡された dto.enum がデータベースに挿入された列挙値と同じ値を持つことを主張したいと思います。

それは私が得る私のエラーメッセージです:

Expected: A

  But was:  A

実際には、値は同じですが型が異なります: dto.enum と businessobject.enum です。

では、両方のオブジェクトがそれを使用でき、両方のオブジェクトが互いに結合していない場合、この列挙型をどこで定義しますか?

アサーションが機能するように、ビジネス層と dto AND ビジネス オブジェクトで使用される列挙定義内に追加の c# クラスを配置することを考えました。

あなたならどうしますか?

4

2 に答える 2

2

列挙型は、両方のオブジェクトがプロジェクト参照によってアクセスできる外部 util クラスに配置する必要があります (モデル レイヤーが最も可能性が高い)。その後、それらは同じ列挙型を使用でき、キャスト、変換、または結合を試みる必要はありません (列挙型が互いに正確に複製されていると仮定します)。

于 2013-11-12T22:51:07.327 に答える