我有一个C#ASP.NET MVC代码第一个项目,它可以连接到我的数据库。它具有在web.config文件中设置的连接字符串,并且似乎都很好。
<connectionStrings>
<add name="HorstMFGContext" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|HorstMFG.mdf;Initial Catalog=aspnet-HorstMFG;Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>
现在我需要从需要基于WinForms的类库的不同应用程序连接到同一个数据库。我无法访问使用我的dll的程序的源代码,因为我的应用程序只是Autodesk Vault的插件。
有很多示例such as this one显示了如何在调用dll的应用程序中设置连接字符串,但这显然不适用于我的情况。
This link here似乎非常接近我需要的东西,但我还没有能够让它发挥作用。这是我的版本&#39;创建&#39;功能
public static HorstMFGEntities Create(string nameOrConnectionString)
{
var entityBuilder = new EntityConnectionStringBuilder();
// use your ADO.NET connection string
entityBuilder.ProviderConnectionString = nameOrConnectionString;
// Set the Metadata location.
entityBuilder.Metadata = @"res://*/HorstMFG.ssdl|res://*/HorstMFG.msl";
return new HorstMFGEntities(entityBuilder.ConnectionString);
}
以下是调用函数的行:
using (var db = HorstMFGEntities.Create(@"data source=(localdb)\MSSQLLocalDB;attachdbfilename=C:\Users\lorne\source\repos\HorstMFG\HorstMFG\App_Data\HorstMFG.mdf;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"))
{
foreach (string l in lineList3)
{
....
....
这是抛出异常的实际行。
// calculate material
Material mat = db.Materials.Where(m => m.StructuralCode == l.Split('\t')[6]).FirstOrDefault();
异常消息&#34;错误:不支持关键字:&#39;元数据&#39;。
任何帮助指出我正确方向的人都表示赞赏。感谢。
我根据第一条评论更新了我的代码,并添加了&#39;提供商&#39;我也错过了。
public static HorstMFGEntities Create(string nameOrConnectionString)
{
var entityBuilder = new EntityConnectionStringBuilder();
// use your ADO.NET connection string
entityBuilder.ProviderConnectionString = nameOrConnectionString;
entityBuilder.Provider = "System.Data.SqlClient";
// Set the Metadata location.
entityBuilder.Metadata = @"res://*/HorstMFG.csdl|res://*/HorstMFG.ssdl|res://*/HorstMFG.msl";
return new HorstMFGEntities(entityBuilder.ConnectionString);
}
现在我收到错误&#34;错误:无法加载指定的资源。&#34;
我现在按照link you provided.中的说明进行操作我认为我必须越来越近,但我对元数据格式有点模糊。似乎有一部分在示例中被注释掉了。我用它替换了它:
entityBuilder.Metadata = "res://*/HorstMFG.csdl|res://*/HorstMFG.ssdl|res://*/HorstMFG.msl";
现在我收到错误:&#34;无法加载指定的元数据资源&#34;
我确认我引用的文件确实存在,它们位于我项目中的... \ obj \ Debug \ edmxResourcesToEmbed \文件夹中。我还改变了“构建动作”#39;对于&#39; HorstMFG.edmx&#39;对象来自&#39;无&#39;到嵌入式资源&#39;。这对任何事都没有帮助。