我想在我的网络应用程序中提供一些枚举。我有一个sharedlib类型类,它包含我的所有DTO并被所有层引用,所以我将它放在该项目中。
我创建了一个.cs文件,并添加了一个公共枚举:
namespace Objects
{
public enum EntityType
{
Thirdparty = 1,
BankAccount = 2
}
}
我的SQL表中有引用数据:
我希望能够像这样引用我的枚举:
if(EntityTypeId==Objects.EntityType.BankAccount) ...
但是,我无法将Int与Object.EntityType进行比较。
如何实现这一目标并采用一种干净的方式?而不是常数?
答案 0 :(得分:3)
您可以在枚举值和int值之间进行转换,例如:
EntityType yourEnumValue = (EntityType)yourIntegerValueFromDatabase;
if (yourEnumValue == EntityType.BankAccount) ...
我应该指出,如果整数的值对你的枚举无效,你将会抛出异常。您可以捕获它并处理它(不是首选),或者您可以使用IsDefined方法来测试该值是否有效。
if (Enum.IsDefined(typeof(EntityType), yourIntegerValueFromDatabase))
{
yourEnumValue = (EntityType)yourIntegerValueFromDatabase;
}
else
{
// deal with it some other way, perhaps use a default value
}