2013-01-17 252 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在另一個項目中的連接字符串