知识大全 详解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.NET Entity框架的性能

挖掘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参数详解

ADO.NET参数详解  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  这个问题以前总是遇到但是每