如何在Visual C#ASP.NET MVC 4 Web应用程序中使用枚举
本文关键字:应用程序 Web 枚举 MVC Visual C#ASP NET | 更新日期: 2023-09-27 18:24:14
如何在Visual C#ASP.NET MVC 4 Web应用程序中使用enum?
我有一个mySQL数据库,其中有一个表"flight",其中包含一个使用类型enum("周一"、"周二"、"周三"、"周四"、utf8_bin
如何使Flight表的类编译/工作?在我的应用程序的模型文件中。
[Table("flight")]
public class Flight
{
[Key, Column(Order = 1)]
public int id { get; set; }
public int route { get; set; }
public enum flightDay { get; set; } **// How to make this work?**
public int aircraft { get; set; }
}
将它们存储为整数id。可选地作为Days表的外键作为代码表,以支持从SQL进行查找。
public enum Day { Monday = 1, Tuesday =2, ... }
[Table("flight")]
public class Flight
{
[Key, Column(Order = 1)]
public int id { get; set; }
public int route { get; set; }
public int flightDayId { get; set; }
// Provides enum abstraction for flightDayId
public Day FlightDay {
get { return (Day)flightDayId; }
set { flightDayId = (int)value; }
}
public int aircraft { get; set; }
}
sql中没有枚举对应的数据类型。因此,您必须将它作为字符串放入c#代码中,并将它(Enum.TryParse)强制转换为相应的枚举。因此,您无法使数据库实体具有enum属性,请将其更改为stiring
string FlightDay{get;set;}
以下是的示例
public class Flight
{
[Key, Column(Order = 1)]
public int id { get; set; }
public int route { get; set; }
public String flightDay { get; set; }
public int aircraft { get; set; }
[NotMapped]
public FlightDays FlightDayEnum
{
get
{
FlightDays day;
Enum.TryParse<FlightDays>(flightDay, out day);
return day;
}
}
}
public enum FlightDays
{
Monday,
Tuesday,
Wendsday,
Thursday,
Friday,
Saturday,
Sunday
}
在DB中,您应该将飞行日期拼写为与枚举完全相同。
在上面的示例中,"FlightDayEnum"没有映射到数据库,而是充当字符串和枚举之间的转换器。