我有一个包含 Id、Name 和 TimeSpan 的类“Stage”。我需要创建一些可以在整个应用程序中引用的常量阶段。一旦定义了这些常量,阶段表和阶段应该是只读的。
舞台类:
public class Stage
{
[Key]
public virtual int StageId { get; set; }
public string Name { get; set; }
public TimeSpan Span { get; set; }
}
我尝试了以下(定义两个常量):
public class Stage
{
[Key]
public virtual int StageId { get; set; }
public string Name { get; set; }
public TimeSpan Span { get; set; }
public static class Values
{
public static readonly Stage ONE = new Stage()
{
StageId = 0,
Name = "ONE",
Span = new TimeSpan(0, 0, 0)
};
public static readonly Stage TWO = new Stage()
{
StageId = 1,
Name = "TWO",
Span = new TimeSpan(0, 0, 10)
};
}
但是,每当我创建具有 Stage 的实体的新实例时,都会将一个新 Stage 添加到数据库中。我只需要几个不变的阶段。
当它应该只是对现有阶段的引用时创建新实例的相关实体构造函数(如上定义):
public class Side
{
public Side()
{
Stage = Stage.Values.ONE;
}
public virtual Stage Stage { get; set; }
}
如何创建一些常量对象并通过Stage.Values.One
语法引用它们?