云锦诚科技专注四川德阳网站设计 四川网站制作 四川网站建设
四川德阳网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

基于ADO.NET Entity Framework问题解决方案

ADO.NET Entity有很多值得学习的地方,这里我们主要介绍ADO.NET Entity,包括介绍ADO.NET Entity等方面。看看下图,解决方案里包括两个Project:EFDemo.Console 和 EFDemo.Models 。这里我把EDM都放在 EFDemo.Models Class Library里。在 EFDemo.Models Class Library 中添加一个"ADO.NET Entity Data Model" 项,名为"UserModel"。 通过向导配置连接等操作后就会创建一个EDM。EDM包括三个文件(.csdl、.msl 和.ssdl 文件)。

创新互联建站,专注为中小企业提供官网建设、营销型网站制作、成都响应式网站建设、展示型网站建设、做网站等服务,帮助中小企业通过网站体现价值、有效益。帮助企业快速建站、解决网站建设与网站营销推广问题。

创建完EDM后会在配置文件(这里是App.Config)的 节点里添加一些信息。如例子中创建UserModel.edmx后会在配置文件中添加一个子节点:

 
 
  1.    
  2.  name="UserEntities" connectionString="metadata=.\UserModel.csdl|.\UserModel.ssdl|.\UserModel.msl;  
  3. provider=System.Data.SqlClient;provider connection string="Data Source=xxxxxx;Initial Catalog=SAASDB;
    Persist Security Info=True;User ID=sa;Password=xxx;MultipleActiveResultSets=False"" providerName="System.Data.EntityClient" /> 
    connectionStrings> 

#T#注意突出显示在这里指定这三个文件的位置,".\"表示Build后这三个文件会被部署到"Build Output Path"位置。回到例子中,EFDemo.Console Project 引用 EFDemo.Models Project,这样就可以在 EFDemo.Console Project 中使用 UserModel 了,写完代码后,把上面配置文件信息Copy到EFDemo.Console Project 的App.config中, Ctrl + F5 运行,发现出现下面错误信息:

 
 
  1. System.Data.MetadataException: The specified metadata path is not valid.  
  2. A valid path must be either an existing directory, an existing file with extension '.csdl',   
  3. '.ssdl', or '.msl', or a URI that identifies an embedded resource. 

明显看出是找不到UserModel.csdl、UserModel.ssdl和UserModel.msl这三个文件,到EFDemo.Console的Build Output Path中看确实没有。有一种解决方法是,每次Build完EFDemo.Models Project后,Copy这三个文件到EFDemo.Console Project的bin里,但是这种做法明显不是***的。

可以通过以下的配置来更好的解决这问题。

1.打开UserModel Model的属性面板,设置“Metadata Artifact Processing ” 选项的值为“Embed in Output Assembly ”。表示这三个文件会被嵌入到Assembly里。

2. 打开UserModel.edmx项的属性面板,确认Build Action值为"EntityDeploy"。以上配置完成之后配置文件中的UserEntities节点值自动改为:

 
 
  1.   name="UserEntities" connectionString="metadata=res://*/UserModel.csdl|res:
    //*/UserModel.ssdl|res://*/UserModel.msl;provider=System.Data.SqlClient;provider connection string="
    Data Source=xxxxxx;Initial Catalog=SAASDB;Persist Security Info=True;User ID=sa;Password=xxx;MultipleActiveResultSets=False"
    " providerName="System.Data.EntityClient" />  connectionStrings> 

注意看突出显示的"metadata=res://*/UserModel.csdl|res: //*/UserModel.ssdl|res://*/UserModel.msl"。"*"表示它会去所有的Aseembly中找这三个被嵌入在 Assembly中的文件。当然如果我们明确知道这三个文件放在EFDemo.Models.dll 这个Assembly中的话,应该指定只在该Assembly中找,而不要浪费时间在所有Assembly中找:

 
 
  1.   name="UserEntities" connectionString="metadata=res://EFDemo.Models/UserModel.csdl|res:
    //EFDemo.Models/UserModel.ssdl|res://EFDemo.Models/UserModel.msl;provider=System.Data.SqlClient;provider connection 
    string="Data Source=xxxxxx;Initial Catalog=SAASDB;Persist Security Info=True;User ID=sa;Password=xxx;
    MultipleActiveResultSets=False"" providerName="System.Data.EntityClient" />  connectionStrings> 

把这些配置信息更新到EFDemo.Console Project 的App.config中,Ctrl + F5, 运行正常。


当前文章:基于ADO.NET Entity Framework问题解决方案
新闻来源:http://xiwangwangguoyuan.com/article/cooigeg.html

免费获取网站建设与品牌策划方案报价

*主要业务范围包括:高端网站建设, 集团网站建设(网站建设网站制作)找网站建设公司就上云锦诚科技。
提交需求

    联系我们

    028-86922220
  • 手机:13518219792
  • 地址:成都高新区尚雅路9号2栋16层1619号
  • 四川德阳网站建设网站seo优化公司

    网站建设服务

  • 网页设计
  • 网站制作
  • 网站开发

    网站推广服务

  • 营销网站建设
  • 百度快速排名
  • 整站网站推广

    网站运维服务

  • 基础维护
  • 网站改版
  • 网站维护

    FOLLOW US

  • 微信二维码

    微信二维码

Copyright © 2022 成都云锦诚科技有限公司 四川网站建设公司-选网站建设公司云锦诚科技!国内专业的网站制作公司!
All Rights Reserved 版权所有 蜀ICP备2024117194号-1