回复: ADO.NET Entity Framework 体验:安装及初试
2. 根据需要,修改映射 由于实体数据模型存在于客户端,故其修改不会对数据库造成影响。也就是说,我们可以根据应用程序的需要,修改映射关系,并且这种修改不会影响数据库。这一特点,会在同一企业不同领域使用共享的数据存储,不同的领域模型的情况下带来受益。我们来试着删除Price的映射。实在是超级简单啊,在实体上右击,点击"删除",观察一下映射详细信息面板:Weight已经被删除了。

附件:
您所在的用户组无法下载或查看附件3. 使用LINQ to Entity查询并输出结果 最后,我们来试试怎么通过LinQ to Entity把查询结果输出。无论如何,LinQ就是LinQ,LinQ查询就脱离不了我们在
VB 9.0新特性之LINQ(一)中提到的那三步:
我们的代码也对应着这三步进行:
Sub Main() 'Create Entity Set Dim db As New DemoDbEntities()
'Create Query
Dim query = From aLaptop In db.NotebookStorage _
Select aLaptop
'Execute Query
For Each aLaptop In query
Console.WriteLine(aLaptop.Brand & vbTab & aLaptop.Type & vbTab & aLaptop.Price)
Next End Sub
|
编译。如果大家使用下载的数据库,就会发现,编译无法通过,有一个错误:
Error 3023: Problem in Mapping Fragment starting at line 92: Column NotebookStorage.Weight in table NotebookStorage must be mapped: It has no default value and is not nullable. E:\...\EFWalkThrough\NotebookDb.edmx 93 15 EFWalkThrough
|
呵呵,看来,刚才删除的列是不被允许了,因为数据库中有一个约束,要求必须有此列。我们要把它添加回去。打开实体数据模型设计器,右击,添加一个"Scalar Property"并给它取个名称:"重量",设置对应的"Nullable"属性为"False"。

附件:
您所在的用户组无法下载或查看附件然后,在"映射详细信息"面板中,通过下拉选择框,把表中的Weight列映射到刚才新建的"重量"属性。

附件:
您所在的用户组无法下载或查看附件顺手修改一下输出语句:
Console.WriteLine(aLaptop.Brand & vbTab & aLaptop.Type & vbTab & aLaptop.Price & vbTab & aLaptop.重量)
|
好,F5,编译运行。输出结果如下:

附件:
您所在的用户组无法下载或查看附件大家注意到了输出结果中,重量全部都变成了2?呵呵,看一下重量的数据类型便知道其中缘故了吧。^_^
小结: 在本文中,我们Step by step的创建一个数据实体模型;然后,对实体模型中的映射关系作了修改(删除映射、添加映射);我们还使用LinQ to Entity把数据从实体对象集中查询并输出到了屏幕。
本文中源代码下载:

附件:
您所在的用户组无法下载或查看附件