3
A
回答
2
答案是更加简单!
我的一个好朋友告诉我这很简单!看看这个例子!
public enum State:byte
{
EmailNotValidated = 0x00,
EmailValidated = 0x10,
Admin_AcceptPending = 0x40,
Active = 0x80,
Admin_BlockedAccount = 0xff
}
,请注意:枚举的名称后部分BYTE ...有我一直在寻找的伎俩!但是,感谢大家为我而努力!
2
您应该可以在您的LINQ对象中具有枚举类型的属性。这样你不必投。
所以,只要改变你的属性,使其具有正确的枚举类型,你不必担心再次施放。您可以在LINQtoSQL设计器中执行此操作。只需右键单击某个属性,选择“属性”并在Visual Studio属性窗口中设置适当的类型。
0
您是否尝试过扩展方法?
public enum MyEnum
{
First = 1,
Second = 2,
Third = 3
}
public static class Utility
{
public static string Description(this Enum e)
{
Type t = e.GetType();
DescriptionAttribute[] desc =
(DescriptionAttribute[])(t.GetField(e.ToString())
.GetCustomAttributes(typeof(DescriptionAttribute), false));
return desc.Length > 0 ? desc[0].Description : e.ToString();
}
public static byte ToByte(this Enum ai)
{
object o=Enum.ToObject(ai.GetType(), ai);
return Convert.ToByte(o);
}
}
class Program
{
static void Main(string[] args)
{
MyEnum me = MyEnum.Third;
Console.WriteLine("Value: {0}\r\nType: {1}"
,me.ToByte(),me.ToByte().GetType().ToString());
Console.ReadLine();
}
}
它输出:
值:3
类型:System.Byte
1
LINQ到SQL通常会处理直接整数地图和详细的字符串(名)地图(注: 区分大小写)。含义:在某处写入枚举,并在设计器中将属性类型设置为完全合格的枚举名称:Some.Namespace.MyEnum
。它通常应该工作。
对于非平凡映射(例如,其中柱是具有混合的情况下的值一个varchar,或之类的东西“进行中” [注意空格]),你将不得不离开存储属性作为int
/varchar
(等)并手动映射。
partial class MyType {
public MyEnum Foo {
get {... mapping logic reading from FooStorage...}
set {... mapping logic, updating FooStorage...}
}
}
唯一的问题是,LINQ查询将只针对存储物业工作(不是:我通常将其标记为私有并将其命名为FooStorage
,并在部分类添加映射属性来完成这个定制财产)。
相关问题
- 1. 隐式从枚举类型转换为int可能如何?
- 2. 不能转换UserQuery枚举枚举
- 3. 枚举转换成另一种类型的枚举
- 4. 枚举类型转换成int
- 5. 转换成枚举基础类型
- 6. 我可以从泛型类型转换为C#中的枚举吗?
- 7. 价值转换问题:从枚举类型“枚举NSEventMask”
- 8. 在Postgres中将枚举类型整数转换为枚举
- 9. 转换枚举来枚举
- 10. Perl有枚举类型吗?
- 11. IOS ELCImagePicker从枚举类型ALAssetOrientation不同枚举类型UIImageOrientation隐式转换
- 12. 枚举类对象转换
- 13. 从枚举类型的隐式转换“枚举UIViewAnimationOption不同枚举类型uiviewanimation过渡
- 14. Phinx迁移 - 枚举列与默认值
- 15. 可能声明枚举类型的函数吗?
- 16. typedef现有的枚举类型,可能吗?
- 17. 将枚举的数据类型转换为int类型?
- 18. 枚举默认值理解
- 19. Thrift默认枚举值
- 20. 为什么不是Byte默认的枚举类型?
- 21. 枚举类型的默认修饰符字段是什么?
- 22. 什么是枚举的默认属性类型编辑器?
- 23. 如果在写入时所有类型都未知,则将值类型转换为泛型对象中的(可能)可枚举枚举类型?
- 24. 不能字符串转换为枚举类型,我创建
- 25. 枚举类“不能转换为无符号整型”
- 26. .NET 3.5中有可能指定一个枚举类型吗?
- 27. 迭代通过可枚举类型的可枚举集合
- 28. Symfony枚举类型与表单类型
- 29. Node.js native枚举中的枚举类型
- 30. 与protobuf的枚举替换C++枚举
不,他们通常是tinyint,因为我没有超过5到20个不同的值。 – BerggreenDK 2009-05-18 09:14:07
在这种情况下,您应该将其类型更改为它们实际上的枚举类型。 LINQtoSQL将正确处理这个问题。 – 2009-05-18 09:18:20
赦免我的问题,但我在哪里改变他们的类型? – BerggreenDK 2009-05-18 10:33:05