Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实体框架6连接字符串问题_C#_Entity Framework - Fatal编程技术网

C# 实体框架6连接字符串问题

C# 实体框架6连接字符串问题,c#,entity-framework,C#,Entity Framework,我有一个C#ASP.NET MVC code first项目,可以连接到我的数据库。它在web.config文件中设置了连接字符串,所有这些似乎都工作得很好 <connectionStrings> <add name="HorstMFGContext" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|HorstMFG.mdf;Initial Cata

我有一个C#ASP.NET MVC code first项目,可以连接到我的数据库。它在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>
以下是调用函数的行:

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();
异常消息“错误:不支持关键字:'元数据'”

任何能为我指明正确方向的帮助都将不胜感激。谢谢

我根据第一条评论更新了代码,还添加了我错过的“提供者”

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);
        }
现在我得到了错误“error:无法加载指定的资源”

现在,我按照中的说明进行了操作,我想我已经接近了,但是我对元数据格式还有些模糊。示例中似乎有一部分被注释掉了。我将其替换为:

entityBuilder.Metadata = "res://*/HorstMFG.csdl|res://*/HorstMFG.ssdl|res://*/HorstMFG.msl";
现在出现错误:“无法加载指定的元数据资源”

我确认我引用的文件确实存在,它们位于我的项目中的…\obj\Debug\edmxResourcesToEmbed\文件夹中。我还将“HorstMFG.edmx”对象的“生成操作”从“无”更改为“嵌入资源”。这没有任何帮助


我几年前使用过这个connection builder类,我知道它可以工作……我注意到您的示例与您链接的示例有所不同。您的版本缺少“Model.csdl”“在meta中…非常确定EF需要所有3个res链接。像这样试一下,看看是否有效。res://*/Model.csdl | res://*/Model.ssdl | res://*/Model.mslEF代码首先不需要它们。请参阅编辑问题中的其他信息。抱歉,我忽略了您先编写代码的事实…看看这个问题…它更符合您的尝试。在原始问题中添加了更多细节。
entityBuilder.Metadata = "res://*/HorstMFG.csdl|res://*/HorstMFG.ssdl|res://*/HorstMFG.msl";