2

エンティティを作成し、.NET でその (事実上列挙型である) プロパティを設定するときのベスト プラクティスに関するアドバイスが必要です。

簡単な例を挙げると、次の 3 つのプロパティを持つ「Todo」というオブジェクトがあるとします:
ID (int)
Text (string)
State (NotStarted、InProgress、Complete)

Todo オブジェクトは SQL Server データベースに保存され、'Type' プロパティは int として保存されます。State プロパティには、それに関連付けられた他の情報やメソッドはありません。これは、Todo インスタンスの完全性を示すためのものです。

次のように Todo.cs で列挙型 (Todo クラスの外部) を作成する必要があります。

public enum TodoState  
{  
  NotStarted = 0,  
  InProgress = 1,  
  Complete = 2  
}

その後、次のように Todo クラスを作成できます。

public class Todo
{
  public int Id { get; set; }
  public string Text { get; set; }
  public TodoState State { get; set; }
}

それとも、内部列挙型と静的コンストラクターを持つ TodoState クラスを作成する必要がありますか? または、これを行うためのより良い完全に異なる方法はありますか?

この場合、これを達成するための最良の方法と思われるものに加えて、この種の問題に取り組む業界標準の方法は何ですか? 前もって感謝します。

4

1 に答える 1

2

バージョン 5 (.NET 4.5 を使用) 以降、Entity Framework はenumプロパティをサポートしています。詳細については、列挙型のサポート - Code FirstおよびEntity Frameworkでの列挙型のサポートを参照してください。

これは問題に対する最も簡単な解決策です。

あなたのコードはそのままでよさそうです。あなたは正しい道を進んでいると思いますが、ここにいくつかの小さな提案があります:

  • 標準的な方法は.cs、列挙型を含め、ファイルごとに 1 つの型を定義するenum TodoStateことTodoState.csです。
  • TodoStateCompletionState名前としては機能しますが、それが何を表しているのかをより説明していると思います。
于 2013-03-20T19:06:55.750 に答える