1

我已經在MS VS 2012 express下創建了應用程序。我正在使用實體框架來訪問本地數據庫SQL Server Compact 4.0。一切都運行得很好:實體框架:連接到外部數據庫

的Web.config

<connectionStrings> 
    <add name="KMDBContext" connectionString="Data Source=|DataDirectory|\kmdbs.sdf" providerName="System.Data.SqlServerCe.4.0"/> 
    </connectionStrings> 

LessonsL.cs

public class KMDBContext : DbContext 
{ 
    public DbSet<LessonsL> LessonsLs { get; set; } 
} 

LessonsLController.cs

private KMDBContext db = new KMDBContext(); 

但我不能夠連接到外部SQL Server數據庫。測試連接返回正面結果。我可以使用MS Server Management Studio使用外部數據庫。但無法檢索或存儲數據。我可以在Database Explorer中看到外部數據庫,但MS VS 2012仍然連接到某個本地文件(pdb或其他)。

的Web.config

<connectionStrings> 
    <add name="LessonLs" connectionString="server=ustsql;database=LessonLs;Integrated Security=true" providerName="System.Data.SqlClient" /> 
    </connectionStrings> 

kmd.cs

public class KMDContext : DbContext 
{ 
    public DbSet<kmd> LessonsLs { get; set; } 
} 

KMDController.cs

private KMDContext db = new KMDContext(); 

誰能說我缺少的是什麼? thx

回答

0

連接字符串的名稱仍然需要爲「KMDContext」,因爲這是您的DbContext的名稱。

的Web.config

<connectionStrings> 
    <add name="KMDContext" connectionString="server=ustsql;database=LessonLs;Integrated Security=true" providerName="System.Data.SqlClient" /> 
</connectionStrings> 
+0

這只是改名數據Conections數據庫瀏覽器,但仍然被應用到接法本地文件。 – nevo 2013-05-07 15:18:12

+0

我發現這不是唯一的命名不匹配,thx – nevo 2013-05-08 08:36:49

0

也許問題是連接到現有的表SQL Server上。我先創建了表格,然後嘗試連接到它。

一旦我刪除了所有的應用程序,我的本地PC和SQL Server上的表,並從頭開始創建應用程序,我能夠使用外部SQL數據庫。 外部SQL數據庫中的表然後由應用程序從本地PC自動創建。

無論如何,感謝ckal,整個問題似乎是在命名約定。從一開始我就沒有用正確的名字工作。

實際工作代碼:

的Web.config

<connectionStrings> 
    <add name="KMD1DBContext" connectionString="server=ustsql;database=LessonLs;Integrated Security=true" providerName="System.Data.SqlClient" /> 
    </connectionStrings> 

KMD1.cs

public class KMD1 
{ 
    ... 
} 

public class KMD1DBContext : DbContext 
{ 
    public DbSet<KMD1> kmds { get; set; } 
} 

KMD1Controller。在外部SQL數據庫中的表CS

private KMD1DBContext db = new KMD1DBContext(); 

名稱

KMD1