因此,我试图使用枚举,可能以错误的方式,因为我来自PHP。在C#中我有一个全球性的类,它的作用:了解枚举 - 用作常量
public static class GlobalTypes
{
public enum assignmentType { SERV = "SERV", PROD = "PROD", PER = "PER", }
}
从那里我试图与实体交互做:
public static IEnumerable<Person> getAllAgents(int id)
{
using (var db = new LocAppContext())
{
var person = (from p in db.Person
join la in db.LocationAssignment on p.id equals la.value
where la.locationID == id && la.type == GlobalTypes.assignmentType.PER
select p).ToList();
return person;
}
}
但我得到的错误:
Operator '==' cannot be applied to operands of type 'string' and 'LocApp.Helpers.Classes.LocationAssignments.GlobalTypes.assignmentType'
发生在
la.type == GlobalTypes.assignmentType.PER
我的逻辑,这是从PHP的,是我想要一个全局常量,我可以调用任何地方“回声”调用时,该常量的值,所以恒定值可以改变,但我不必改变它在一百万个地方。
想法?
只需沟'= “SERV”'部分,它应该是好的去。下面是关于C#中枚举用法的一些MSDN文档:http://msdn.microsoft.com/en-ca/library/vstudio/cc138362.aspx编辑:另外,你的'la.type'应该被定义为'GlobalTypes.assignmentType '不是一个字符串。 – 2013-04-23 20:20:48
枚举不是字符串,C#不是PHP。 – alex 2013-04-23 20:21:30
@ChrisSinclair所以你说我可以这样做:'&& GlobalTypes.assignmentType' ??它会知道我想要什么? – TheWebs 2013-04-23 20:23:05