知识大全 详解ADO.NET Entity Framework 4中枚举的使用
Posted 类型
篇首语:智慧是生成的,知识是学来的。。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 详解ADO.NET Entity Framework 4中枚举的使用相关的知识,希望对你有一定的参考价值。
详解ADO.NET Entity Framework 4中枚举的使用 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
本文将通过ADO NET Entity Framework 中枚举的使用介绍 带领大家走进ADO NET的世界
枚举(Enum)是一种常用的类型 如用于表示状态 类型等参数 但目前它不会被官方地在ADO NET Entity Framework中进行支持 本文介绍的是通过复杂类型(Complex Types)在ADO NET Entity Framework 中使用枚举
这种方法需要使用POCO类 而不能使用Visual Studio自动生成的类 因为我们需要手动为复杂类型编写代码
数据库脚本
if exists (select
from sysobjects
where id = object_id( Account )
and type = U )
drop table Account go create table Account
(
ID uniqueidentifier not null default NewSequentialID()
UserName nvarchar( ) not null
Password varchar( ) not null
Email nvarchar( ) not null
Role int not null
constraint PK_ACCOUNT primary key (ID)
)
insert into Account (UserName Password Email Role ) values ( Test Test test )
insert into Account (UserName Password Email Role ) values ( Test Test test )
insert into Account (UserName Password Email Role ) values ( Test Test test )
这是一个用于存放帐号信息的数据表 Role是个枚举类型 在数据库中用int类型
我们按常规做法写一个用于表示Role的枚举类型
public enum AccountRoleEnum
Admin =
User =
然后写一个复杂类型用于在枚举类型和数据库的int类型之间做变换 复杂类型只有在ADO NET Entity Framework 中才有
public partial class RoleWrapper
private AccountRoleEnum m_orderStatus;
public int Value
get
return (int)m_orderStatus;
set
m_orderStatus = (AccountRoleEnum)value;
public AccountRoleEnum EnumValue
get
return m_orderStatus;
set
m_orderStatus = value;
public static implicit operator RoleWrapper(AccountRoleEnum role)
return new RoleWrapper
EnumValue = role
;
public static implicit operator AccountRoleEnum(RoleWrapper role)
if (role == null)
return AccountRoleEnum User;
return role EnumValue;
最后的 个方法用于隐式类型重载 也就是对类型进行变换
然后我们写Account实体
public class Account
public Guid ID
get;
set;
public string UserName get; set;
public string Password
get;
set;
public string Email
get;
set;
public RoleWrapper Role
get;
set;
和实体框架上下文
public class EntitiesContext : ObjectContext
public EntitiesContext()
: base( name=Entities Entities )
_accounts = CreateObjectSet<Account>();
public ObjectSet<Account> Accounts
get
return _accounts;
private ObjectSet<Account> _accounts;
这样 主要的工作就已经完成了 在比较时可以使用
account Role == AccountRoleEnum Admin 但是在涉及到数据库的查询时 这样的写法是会报错的 只能使用
cha138/Article/program/net/201311/12519相关参考
知识大全 ADO.NET Entity Framework 试水——并发
ADO.NETEntityFramework试水——并发 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下
挖掘ADO.NETEntity框架的性能 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ADON
知识大全 ADO.NET Entity Framework 试水——并发[4]
ADO.NETEntityFramework试水——并发[4] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来
知识大全 ADO.NET Entity Framework 试水——并发[3]
ADO.NETEntityFramework试水——并发[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来
知识大全 ADO.NET Entity Framework 试水——并发[1]
ADO.NETEntityFramework试水——并发[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来
知识大全 ADO.NET Entity Framework 试水——并发[2]
ADO.NETEntityFramework试水——并发[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来
知识大全 ADO.NET Entity Framework 入门示例向导
ADO.NETEntityFramework入门示例向导 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下
知识大全 ADO.NET Entity Framework存取数据库中图片
ADO.NETEntityFramework存取数据库中图片 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看
知识大全 ADO.NET Entity Framework存取数据库中的图片
ADO.NETEntityFramework存取数据库中的图片 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来
ADO.NET参数详解 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 这个问题以前总是遇到但是每