2

在 .NET 中创建实体并设置其(实际上是枚举)属性时,我需要一些关于最佳实践的建议。

举个简单的例子,假设我有一个名为“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)开始,实体框架支持enum属性。阅读枚举支持 -实体框架中的代码优先和枚举支持以获取更多信息。

这是迄今为止解决您的问题的最简单方法。

您的代码看起来不错。我认为你在正确的轨道上,虽然这里有一些小建议:

  • 标准做法是为每个.cs文件定义一种类型,包括枚举,因此我建议enum TodoState移至TodoState.cs.
  • TodoState作为一个名字的作品,但我认为CompletionState它更能描述它应该代表什么。
于 2013-03-20T19:06:55.750 回答