1

我使用这条指令创建了一个 ADO.NET 实体数据模型。我有两个新课程:

namespace Parser
{
    public partial class advert : EntityObject
    {
        ///////////
    }

    public partial class test_workEntities1 : ObjectContext
    {
       ///////
    }
}

然后我创建了以下类:

namespace Parser
{
    public class BdProvider
    {
        public void InsertAdv()
        {
            advert adv = new advert();
            test_workEntities1 f = new test_workEntities1();

            adv.adress = "adress 1";
            adv.const_link = "domain.com";
            adv.count_room = 10;

            f.advert.AddObject(adv);
        }
    }
}

我创建了以下控制台应用程序:

namespace TestApp
{
    class Program
    {
        static void Main(string[] args)
        {
            BdProvider bd = new BdProvider();
            bd.InsertAdv();
            Console.ReadKey();
        }
    }
}

当我运行应用程序时,我看到:

指定的命名连接在配置中未找到,不打算与 EntityClient 提供程序一起使用,或者无效

堆栈跟踪:

System.ArgumentExceptionнеобработано消息=Указанноеименованноесоединениененайденовконфигурации,непредназначалосьдляиспользованияспоставщикомEntityClientилинедопустимо。Source=System.Data.Entity StackTrace: • System.Data.EntityClient.EntityConnection.ChangeConnectionString(String newConnectionString) • System.Data.EntityClient.EntityConnection..ctor(String connectionString) • System.Data.Objects.ObjectContext.CreateEntityConnection( String connectionString) ? System.Data.Objects.ObjectContext..ctor(String connectionString, String defaultContainerName) ? Parser.test_workEntities1..ctor() ? C:\proj\Parser\Model1.Designer.cs:строка 34 ? Parser。 BdProvider.InsertAdv() - C:\proj\Parser\BdProvider.cs:строка 28 - TestApp.Program.Main(String[] args) - C:\proj\TestApp\Program.cs:строка 21 - System.

我尝试使用不同的 connectionString 创建 test_workEntities1,但没有成功。

我的连接字符串是

<connectionStrings>
    <add name="test_workEntities1" 
         connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=PKVZALE\SQLEXPRESS;Initial Catalog=test_work;Integrated Security=True;MultipleActiveResultSets=True&quot;" 
         providerName="System.Data.EntityClient" />
  </connectionStrings>
4

2 回答 2

1

您需要在TestApp配置文件中添加连接字符串。

目前,您在项目的app.config文件中拥有它Parser,但是,当您通过TestApp项目运行应用程序时,.NET 正在此项目中寻找设置。

// 扩展答案

app.config可以在项目的根文件夹中创建。您可以通过从Parser项目中复制/粘贴或使用msdn中的以下说明来执行此操作

将应用程序配置文件添加到 C# 项目

  1. 在项目菜单上,单击添加新项。

    出现添加新项目对话框。

  2. 选择应用程序配置文件模板,然后单击添加。

    一个名为 app.config 的文件将添加到您的项目中。

于 2013-01-17T12:00:58.510 回答
1

当您拥有实体框架时,您需要做 3 件事- EF在不同的项目中:

  1. EF 项目中的连接字符串

  2. 在另一个项目中引用

  3. 另一个项目中的 EF 连接字符串

于 2013-01-17T12:06:48.517 回答