2012-07-18 18 views
5

SQL Server Express .mdf veritabanıyla Entity Framework 4.1 ile çalışma.Entity Framework 4.1, SQL Server Express veritabanına herhangi bir satır eklemiyor

Test amacıyla Bir WPF uygulamasında Varlık Modeli kullanılarak SQL Server Express veritabanında CRUD işlemleri gerçekleştirmeye çalışıyorum.

Ben bu konsepte yeni değilim ve video eğitimi takip ve

Bekarım çok basit tablonun Varlık modelini yarattı göre kodlama yapılır. Ve ben şu kodu kullanarak veritabanına bir satır ekleyerek gerçekleştirmek için cs dosyasında basit bir kod yazdım

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

Ama geri dönmek hiçbir veri eklenir veritabanını kontrol ederseniz. Lütfen bana neyin yanlış gittiğini söyle? en iyi ihtimalle -

Ve işte benim bağlantı dize

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

@marc_s önceki gibi aynen aynıdır. Nerede yanlış gidiyor – panindra

+0

Herhangi bir hata mesajı? Neler olup bittiğini görmek için uygulamayı adım adım ayıklamaya çalıştınız mı? Hata ayıklayıcınız en iyi arkadaşınız, kullanmayı öğrenin. Gösterdiğin kod iyi görünüyor, bahse girerim ki başka bir yerde bir problem vardır (hatta işleyicileri ve benzer şeyleri kurmayı unutmuş gibi). – walther

+0

@walthereven Hata alıyorum. Ben denedim denedim o tamamdır – panindra

cevap

6

bütün kullanıcı örnek ve AttachDBFilename = yaklaşım kusurludur olduğunu! Visual Studio gayet güzel, (koşu app çıkış dizinine DataDirectory itibaren) .mdf dosyası ve büyük olasılıkla etrafında INSERT eser kopyalama olacak - ama sadece sonunda yanlış .mdf dosyanın bakıyoruz ! Veri yok ben neredeyse eminim - Bu yaklaşımla sopa istiyorsanız

ardından .SaveChanges() çağrı üzerine bir kesme noktası koymayı deneyin - ve sonra SQL Server Yönetimi Studio Express ile çalışan uygulamanın dizindeki .mdf dosyayı incelemesi . Bence

gerçek çözüm SQL Server Express yüklendikten

  1. olacaktır

  2. SQL Server Management Studio Express yüklemek

  3. (ve zaten yaptık zaten o)
  4. Veritabanınızı SSMS Express adresinden oluşturun, mantıksal bir ad verin (örn. TestDatabase)

  5. mantıksal veritabanı adı (sunucuda oluşturduğunuzda verilir) kullanarak bağlanın ve fiziksel veritabanı dosyaları ve kullanıcı örnekleri ile karıştırmayın. Bu durumda, bağlantı dizesi gibi bir şey olacaktır:

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

    ve her şey ... ben soruyu güncellenmiş ve bağlantı dizesini eklemiş

+0

thansk öneriniz için thansk bir kez daha çizmeye çalışacağım – panindra

+1

Bu analiz ile katılıyorum. SSE'ye mdfs ekleyerek nefret ediyorum, bu çok tuhaf sorunlara neden olabilir. SSMS'yi SSMS'de yaratırdım, tıpkı tam dolu Sql Sunucusunda yaptığınız gibi, ve bu format için bağlantı dizgisini kullanırım. Bu size daha az baş ağrısı vermeli. – GrayFox374

İlgili konular