详解介绍升级后的ADO.NETEntityFrameworkBeta3

升级到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.  Name="Tenant" EntityType="SAASModel.Store.Tenant"> 
  2.  
  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.  
  14.  

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

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

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]"前缀去掉,但是这毕竟不是根本上的解决方法。

标题名称:详解介绍升级后的ADO.NETEntityFrameworkBeta3
文章起源:http://www.shufengxianlan.com/qtweb/news7/230357.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联