详解介绍升级后的ADO.NET Entity Framework Beta3

开发 后端
OO4O为Oracle环境被最优化了,而Microsoft提供的功能在本质上更普通,而我们不行。但我们通常可以与Microsoft保持步调一致。

升级到ADO.NET Entity Framework Beta3时,一般使用DataAdapter(也可能是CommandBuilder)与数据源交互,用DataView对DataSet中的数据进行排序和过滤。DataSet可以被继承来建立强化类型的DataSet,用于暴露表、行、列作为强化类型对象属性。

ADO.NET Entity Framework Beta3中,New一个"ADO.NET Entity Data Model"。打开生成的SSDL文件,随便看一个EntitySet节点:

  1. <EntitySet Name="Tenant" EntityType="SAASModel.Store.Tenant"> 
  2. <DefiningQuery> 
  3.  SELECT   
  4. [Tenant].[TenantId] AS [TenantId],   
  5. [Tenant].[TenantName] AS [TenantName],   
  6. [Tenant].[DisplayName] AS [DisplayName],   
  7. [Tenant].[Approved] AS [Approved],   
  8. [Tenant].[CreateDate] AS [CreateDate],   
  9. [Tenant].[EndDate] AS [EndDate],   
  10. .......  
  11. FROM  
  12. [dbo].[Tenant] AS [Tenant]  
  13. </DefiningQuery> 
  14. </EntitySet> 

看看上面突出显示的"[dbo].[Tenant] AS [Tenant]",注意这里多出了"[dbo]"前缀。再来看看创建上面的EDM后会在config里生成的节点:

  1. <connectionStrings> 
  2.     <add name="UserRightEntities" connectionString="metadata=res://*/
  3. UserRight.csdl|res://*/UserRight.ssdl|res://*/UserRight.msl;provider=System.Data.SqlClient;provider connection string=&quot;
  4. Data Source=xxxxserver;Initial Catalog=xxxx;Persist 
  5. Security Info=True;User ID=sa;Password=xxxxxx;MultipleActiveResultSets=False&quot;" providerName="System.Data.EntityClient" /> 
  6. </connectionStrings> 

OK, 现在我在数据库中创建了一个用户:Inrie, 然后以这个用户的身份创建一个Tenant表。这时候数据库中就有两个Tenant表:[dbo].[Tenant]和[inrie].[Tenant]。

通常情况下,我们都认为:通过设置连接字符串的User ID的值,ADO.NET Entity Framework Beta3访问EDM获取到的数据应该就是当前用户下表的数据。也就是我设置User Id=inrie, 我就希望我得到的是[inrie].[Tenant]表的数据。

但是看看最上面生成的EntitySet信息,发现它已经自作主张的给你加了[dbo]前缀了,这样导致你无论设置的User ID是什么值,获取到的都是[dbo].[Tenant]的数据。
对此,我在想是否可以在创建 "ADO.NET Entity Data Model" 时做一些设置,使得不生成这个。#t#

是查看了所有属性,没有很好对策。ADO.NET Entity Framework Beta3当然要想实现需求也不是没有办法,可以手动的把"[dbo]"前缀去掉,但是这毕竟不是根本上的解决方法。

责任编辑:chenqingxiang 来源: 博客园
相关推荐

2010-04-20 09:40:38

ADO.NET Ent

2009-12-22 14:46:09

ADO.NET Ent

2009-12-30 14:03:36

ADO.NET Ent

2009-11-03 16:27:43

ADO.NET Ent

2009-12-30 10:14:41

ADO.NET Ent

2009-12-22 17:14:37

ADO.NET Ent

2009-12-30 09:10:04

ADO.NET Ent

2009-12-23 16:00:50

ADO.NET Ent

2009-12-23 16:15:24

ADO.NET Ent

2009-09-04 14:52:03

ADO.NET Ent

2009-12-31 14:56:36

ADO.NET Ent

2009-12-22 16:03:34

ADO.NET Ent

2009-12-30 10:49:32

ADO.NET Ent

2009-11-11 15:59:17

ADO.NET Ent

2009-12-30 15:06:22

ADO.NET分析

2009-09-09 10:23:59

ADO.NET连接

2009-12-30 10:32:04

扩展ADO.NET

2010-01-04 10:48:30

ADO.NET特色

2009-12-22 15:20:25

ADO.NET功能

2009-12-22 11:17:58

ADO.NET产品
点赞
收藏

51CTO技术栈公众号