[英]What is the proper way to add a database.mdf to an N-Tier winforms application?
我具有以下应用程序体系结构,并且正在使用EF6:
TartanModel <-> TartanGenerator.DAL <-> TartanGenerator.BLL <-> Winforms Application
EDMX文件位于DAL中,而EDMX的实体位于模型中。 我不断收到以下错误:
{“底层提供程序在打开时失败。”}
我为我的application.config文件尝试了多个连接字符串,最终看起来像下面的一样,并不断出现相同的错误:
<add name="TartanIndexEntities" connectionString="
metadata=
res://*/TartanModel.csdl|
res://*/TartanModel.ssdl|
res://*/TartanModel.msl;
provider=System.Data.SqlClient;
provider connection string="
Data Source=(LocalDB)\MSSQLLocalDB;
AttachDBFilename=TartanIndex.mdf;
Database=TartanIndex
Integrated Security=True;
User Instance=True;
MultipleActiveResultSets=True;
App=EntityFramework""
providerName="System.Data.EntityClient" />
最初,MDF文件使用以下连接字符串附加到MSSQL Server v2014:
<add name="TartanIndexEntities" connectionString="
metadata=
res://*/TartanModel.csdl|
res://*/TartanModel.ssdl|
res://*/TartanModel.msl;
provider=System.Data.SqlClient;provider connection string="data source=(local);initial catalog=TartanIndex;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework""
providerName="System.Data.EntityClient" />
我需要做的是将MDF和LDF文件放置在主应用程序文件夹中的数据目录中(也许使用连接字符串中的|DataDirectory|
参数),以便为该应用程序创建installshield应用程序安装程序。
终于想通了。
我最终不得不:
将我的连接字符串更改为以下内容:
<add name="TartanIndexEntities" connectionString=" metadata= res://*/TartanModel.csdl| res://*/TartanModel.ssdl| res://*/TartanModel.msl; provider=System.Data.SqlClient; provider connection string=" Data Source=(LocalDB)\\MSSQLLocalDB; Integrated Security=True; AttachDBFilename=|DataDirectory|TartanIndex.mdf; App=EntityFramework"" providerName="System.Data.EntityClient" />
所有工作和应用程序的分配速度都比通过我的开发MSSQL Server快。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.