簡體   English   中英

實體框架4.1不會向SQL Server Express數據庫添加任何行

[英]Entity Framework 4.1 is not adding any rows to SQL Server Express database

使用帶有SQL Server Express .mdf數據庫的Entity Framework 4.1。

為了進行測試,我嘗試使用WPF應用程序中的實體模型對SQL Server Express數據庫執行CRUD操作。

我是這個概念的新手,因此按照視頻教程進行了編碼,

我創建了單個非常簡單的表的實體模型。 我在cs文件中編寫了簡單的代碼,使用以下代碼執行了將一行添加到數據庫的操作

testEntities db = new testEntities();
TestTable tb = new TestTable();
tb.Name = txtName.Text;
tb.Email = txtMail.Text;
db.TestTables.AddObject(tb);
db.SaveChanges();

但是,如果我返回數據庫,則不會添加任何數據。 請告訴我這里出了什么問題??

這是我的連接字符串

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <connectionStrings>
    <add name="testEntities" 
         connectionString="metadata=res://*/DBModel.csdl|res://*/DBModel.ssdl|res://*/DBModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.\SQLEXPRESS;attachdbfilename=|DataDirectory|\test.mdf;integrated security=True;connect timeout=30;user instance=True;multipleactiveresultsets=True;App=EntityFramework&quot;" 
         providerName="System.Data.EntityClient" />
  </connectionStrings>
</configuration>

整個用戶實例和AttachDbFileName =方法都有缺陷-充其量! Visual Studio將圍繞.mdf文件復制(從DataDirectory到正在運行的應用程序的輸出目錄),並且很可能您的INSERT可以正常工作-但最終您只是看錯了.mdf文件

如果您要堅持這種方法,請嘗試在.SaveChanges()調用上放置一個斷點,然后使用SQL Server Mgmt Studio Express檢查正在運行的應用程序目錄中的.mdf文件-我幾乎可以確定您的數據在那里。

我認為真正的解決方案

  1. 安裝SQL Server Express(並且您已經完成了此操作)

  2. 安裝SQL Server Management Studio Express

  3. SSMS Express中創建數據庫,給它一個邏輯名稱(例如TestDatabase

  4. 使用其邏輯數據庫名稱 (在服務器上創建時提供)連接到該數據庫 -並且不要弄亂物理數據庫文件和用戶實例。 在這種情況下,您的連接字符串將類似於:

     Data Source=.\\\\SQLEXPRESS;Database=TestDatabase;Integrated Security=True 

    和其他一切是完全一樣的前...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM