使用Entity Framework为WP7创建数据库 第一部分 已翻译 100%

王振威 投递于 2012/11/27 18:14 (共 8 段, 翻译完成于 11-27)
阅读 197
收藏 1
0
加载中
注意: Entity Framework 现在已经开源了, 你可以从Codeplex上下载到

当我开始为Windows Phone开发应用时,发现在上面没有一个很好的数据库来方便存储大型数据。那时很多人都是靠序列化与反序列化存储在独立存储的xml文件来完成此功能的,非常糟糕;但是后来芒果发布了,带来完全可用的数据库,虽然好用但是我必须完全去手写一个个类,而这也非常耗时。后来我发现能用 SqlMetal 来从SQL Compact文件映射类出来,这确实是一件让人兴奋的事情。


王振威
王振威
翻译于 2012/11/27 18:15
1
所以现在我仅仅只需要做到创建SDF文件,恰好我的本职工作就是干这个的(我一直都在用Entity Framework来为WinForms应用创建SDF文件存储数据)

要在WP7.5上使用这个技术,你需要这些东西:
1,Windows Phone SDK 7.1 + Update 7.11
2,Entity Framework(如果你已经安装了.NET 4,那么你就有了这玩意)
3,Entity Designer Database Generation Power Pack

然后需要完成以下3个步骤:
1,使用Entity Framework创建创建数据模型
2,根据模型生成数据库,然后使用SqlMetal依据数据库映射成能在WP7上使用的对应类
3,测试结果

你可以先从这里下载源码

王振威
王振威
翻译于 2012/11/27 18:15
1
Part 1:使用Entity Framework创建数据模型
为了创建数据模型,需要停下来想想准备去存储哪些数据。
1,创建新解决方案,名称为"AppTracker",然后添加一个名为"AppTracker.Entities"的普通类库。(请确保你选择的.net framework版本为4,否则后面有些功能无法实现)


2,删除 Class1.cs 文件


3,右键点击项目 AppTracker.Entities 然后添加一个新建项,如图添加一个ADO.NET Entity Data Model,并命名为 AppTrackerDataModel.edmx


王振威
王振威
翻译于 2012/11/27 18:16
1
4,在下一步的对话框中,选择空数据模型然后点击完成按钮


5,然后我们就可以创建数据模型了


6,最简单的方式就是添加新的实体(这个实体会转换成数据库中的表),右键点击工作区然后选择添加新实体。
接着在Entity Name文本框中,我这里填"Idea"。注意这里是单数类型词,如下图


王振威
王振威
翻译于 2012/11/27 18:16
1
7,现在为第一个实体添加属性,有三种方法:右键点击工作区,或从工具箱直接拖放,或者我最喜欢的,按住Insert键然后点击实体图的Properties头部。


8,当添加完所有的属性后,使用Properties Viewer设置所有属性的类型,如下图,我把Name与Description设置为默认的String类型。


9,下一个步骤就是为分类信息添加对应的实体,如下图


王振威
王振威
翻译于 2012/11/27 18:16
1
10,现在分类的实体也被创建完毕,对于它只需要添加一个Name属性就足够,这里我采用的最方便的方法就是从Idea实体直接复制Id属性与Name属性过来


11,在工具箱中找到 Association tool,选择它然后从Category实体拖放到Idea实体,这就创建了一个一对多的关系。即每一个Idea只能属于一个Category,但是一个Category可以包含多个Idea。


12,现在双击那根连接线来设置参照约束。如下图


王振威
王振威
翻译于 2012/11/27 18:17
1
13,现在该添加第三个实体 -- Note,这里注意属性IdeaId


14,这里需要另一个一对多的关系,但这里是一个Idea对应多个Note,而一个Note只属于一个Idea

15,现在双击连接线来设置参照约束


王振威
王振威
翻译于 2012/11/27 18:17
1
16,现在该到了检查代码是否有错误的时候了,如下图


OK,这篇文章就是我们整个系列的第一篇,完成使用Entity Framework创建一个基本数据模型,在下一个部分我们准备生成数据库文件然后使用SQLMetal来生成数据类。

王振威
王振威
翻译于 2012/11/27 18:17
1
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
加载中

评论(0)

返回顶部
顶部