您的位置:首页 > 其它

在 ADO.NET Entity Framework 4 中使用枚举

2010-04-19 13:50 351 查看
枚举(Enum)是一种常用的类型,如用于表示状态、类型等参数。但目前它不会被官方地在ADO.NET Entity Framework中进行支持。本文介绍的是通过复杂类型(Complex Types)在ADO.NET Entity Framework 4中使用枚举。
这种方法需要使用POCO类,而不能使用Visual Studio自动生成的类。因为我们需要手动为复杂类型编写代码。

数据库脚本:

代码

1 public class EntitiesContext : ObjectContext
2 {
3 public EntitiesContext()
4 : base("name=Entities", "Entities")
5 {
6 _accounts = CreateObjectSet<Account>();
7 }
8
9 public ObjectSet<Account> Accounts
10 {
11 get
12 {
13 return _accounts;
14 }
15 }
16 private ObjectSet<Account> _accounts;
17 }

这样,主要的工作就已经完成了,在比较时可以使用

1 account.Role == AccountRoleEnum.Admin

但是在涉及到数据库的查询时,这样的写法是会报错的,只能使用

1 EntitiesContext db = new EntitiesContext();
2 db.Accounts.Where(c => c.Role.Value == (int)AccountRoleEnum.Admin);

参考文章

http://blogs.msdn.com/adonet/archive/2009/05/21/poco-in-the-entity-framework-part-1-the-experience.aspx
http://blogs.msdn.com/alexj/archive/2009/06/05/tip-23-how-to-fake-enums-in-ef-4.aspx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: