2013-01-17 204 views
1

我创建了一个ADO.NET实体数据模型,使用this instruction。我有两个新类:连接到数据库(ADO.NET,SQL Server)的

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илинедопустимо。 源= System.Data.Entity的堆栈跟踪:в System.Data.EntityClient.EntityConnection.ChangeConnectionSt 环(字符串newConnectionString)в System.Data.EntityClient.EntityConnection..ctor(字符串 的connectionString)в System.Data。 Objects.ObjectContext.CreateEntityConnection(力量荷兰国际集团 的connectionString)вSystem.Data.Objects.ObjectContext..ctor(字符串 的connectionString,字符串defaultContainerName)в Parser.test_workEntities1..ctor()в C:\ PROJ \分析器\型号1 TestApp.Program.Main(String [] args)中的Parser.BdProvider.InsertAdv()在C:\ proj \ Parser \ BdProvider.cs中查看:012ffC:\ PROJ \ TestApp \的Program.cs:строка21в System.AppDomain._nExecuteAssembly(RuntimeAssembly组件,字符串[] 参数)вSystem.AppDomain.ExecuteAssembly(字符串assemblyFile,证据 assemblySecurity,字串[] args) в Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssem布莱()в System.Threading.ThreadHelper.ThreadStart_Context(对象状态)в System.Threading.ExecutionContext.Run(的ExecutionContext 的ExecutionContext,ContextCallback回调,对象的状态,布尔 ignoreSyncCtx )в System.Threading.ExecutionContext.Run(的ExecutionContext 的ExecutionContext,ContextCallback回调,对象状态)в System.Th读.ThreadHelper.ThreadStart()InnerException:

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

我的connectionString是

<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> 
+0

这个项目是在类库中吗? – levi

+0

@levi,http://imageshack.us/scaled/landing/832/problemconnection.png BdProvider类和Parser类包含在一个项目类库中。 – Denis

回答

1

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

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

//展开后回答

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

这样对应用程序配置文件添加到您的C#项目

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

    出现添加新项目对话框。

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

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

+0

我需要放置文件吗?我试图把文件放在一个文件夹TestApp \ app.config,TestApp \ bin \ Debug \ app.config – Denis

+0

问题解决了。谢谢! – Denis

1

你需要做三件事情,当你有一个实体框架 - EF在不同的项目:在EF项目

  • 在另一个参考

    1. 连接字符串项目

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