Daha once cok fazla C# deneyimi olmamış ve internetten yaptığım uzun araştırmalar sonucunda sorunuma cozum bulamadığım icin size sormak istiyorum bunu.
Elimde tablo değişkenleri oluşturulmuş bir C# projesi mevcut. Yani Abonelikler.cs ve Arac.cs gibi dosyalar mevcut projemin icinde. İclerinde değişkenler turlerine gore tanımlanmış durumdalar. Programı derlediğimde programın localdb'de tabloları oluşturması gerekiyormuş. İclerine değer yazılmayacak. Yalnızca tablolar .cs dosyalarındaki ozelliklere gore oluşturulacak. Ancak bir turlu bu işlemi yapamadım. Bana localde SQL Manager yardımıyla oluşturmak istediğim database ile aynı isimde bir database oluşturmam ancak tablo eklememem soylendi. Program build edildiğinde ise tabloların kendiliğinden localdb'de oluşacağı soylendi ancak bunu yapmayı başaramıyorum. Server Explorer penceresi uzerinden localde oluşturmuş olduğum OtoparkDB isimli database'i ekledim. Artık Server Explorer penceresinde oluşturduğum database gorunuyor. Ancak projeyi build ettiğimde bir turlu tablolar oluşmuyor. Ek bilgi olarak bu proje başka bir bilgisayarda mevcuttu. Ben oradan alıp solution uzerinde bu projeyi ekledim. Yani App.config dosyası icerisindeki connectionStringler uzerinde de değişiklik yapmam gerekebilir gibi geliyordu. Bende biraz inceleyip user ID olarak root gorunen kısmı kendi kullanıcı adım olan Erkam/WWA olarak değiştirdim ancak yine cozume ulaşamadım.
Yaptığım projeyle ilgili olarak daha detaylı bilgi vermem gerekirse şoyle diyeyim.
Şuanda bu solution uzerinde iki farklı proje ekli. Birisi Veritabanı, diğeri ise bir MVC projesi. Veritabanı projesini derleyip tabloları oluşturduktan sonra MVC projesinde Veritabanı projesini referans olarak gosterdiğim icin MVC projesi uzerinden Veritabanı projesinde oluşturulmuş olan tabloları kullanarak gerekli kayıt işlemlerini gercekleştireceğim.
Umarım sorunumu ve projemi yeterince acıklayabilmişimdir. Eğer anlamadığınız bir nokta varsa sorun lutfen. 2 gundur uğraşıyorum ancak bir turlu cozume ulaşamadım..
Şimdiden yardımcı olan olmayan herkese teşekkurler.
Konuyu kendim cozdum.
Oluşturulmuş olan veritabanı projesi zaten calıştırılabilir turden bir proje değildi. Yalnızca tablolar icin gerekli olan sınıflar yazılmış ve ilgili context dosyası oluşturulmuş durumdaydı.
Defalarca aynı şeyi yazmama ve App.config dosyasındaki connection string ayarlarını doğru bir şekilde defalarca yapmama rağmen bir turlu tabloların local veritabanımda oluşmasını sağlayamıyordum.
Sorunumu dile getirirken yazmış olduğum localde ilgili veritabanını oluşturdum ancak veritabanını oluşturmuş olmama rağmen yinede tablolar oluşmuyor şeklindeki kısımda tamamen yok sayılması gereken bir kısım.
Sorunumun tam olarak neden kaynaklandığını bilmiyorum acıkcası ancak adım adım tekrar projemi oluştururken yaptıklarımı sıralamak istiyorum.
Bana verilmiş olan proje MySQL DB'ye bağlanmak uzere tasarlanmış durumdaydı ve ben her seferinde MySQL'e bağlanabilmek amacıyla yazılmış olan ekstra satırları silerek ya da yorum satırı yaparak projeyi derliyordum. Bunu bıraktım ve projenin icindeki şeyleri tekrar yeni bir proje oluşturarak kendim yazdım.
Daha sonra App.config kısmındaki ayarları kesin bir şekilde doğru yapabilmek amacıyla daha once oluşturmuş olduğum bir projenin ilgili connection string kısmını yeni oluşturduğum veritabanı projemin icine kopyalayıp yapıştırdım. Ardından ilgili kısımları değiştirdim. Size ornek teşkil etmesi amacıyla buraya connection string kısmını koyuyorum.
Kod:Panoya kopyala
Daha sonra context dosyasını oluşturmaya başladım. Context sınıfınızın DbContext'ten turetilmesi konusuna (kalıtım alınmasına) ve OnModelCreating metodunu override yapmaya dikkat ediniz ve unutmayınız.
Tum bunları doğru bir şekilde yaptıktan sonra projenizi yalnızca derleyiniz. Calıştırmaya calışırsanız hata alırsınız. Derlediğinizde soylediğim şeylere uygun bir şekilde hareket ettiyseniz local veritabanınızda ilgili veritabanı ve tablolar oluşacaktır.
irkam03 dedi:
Daha once cok fazla C# deneyimi olmamış ve internetten yaptığım uzun araştırmalar sonucunda sorunuma cozum bulamadığım icin size sormak istiyorum bunu.
Elimde tablo değişkenleri oluşturulmuş bir C# projesi mevcut. Yani Abonelikler.cs ve Arac.cs gibi dosyalar mevcut projemin icinde. İclerinde değişkenler turlerine gore tanımlanmış durumdalar. Programı derlediğimde programın localdb'de tabloları oluşturması gerekiyormuş. İclerine değer yazılmayacak. Yalnızca tablolar .cs dosyalarındaki ozelliklere gore oluşturulacak. Ancak bir turlu bu işlemi yapamadım. Bana localde SQL Manager yardımıyla oluşturmak istediğim database ile aynı isimde bir database oluşturmam ancak tablo eklememem soylendi. Program build edildiğinde ise tabloların kendiliğinden localdb'de oluşacağı soylendi ancak bunu yapmayı başaramıyorum. Server Explorer penceresi uzerinden localde oluşturmuş olduğum OtoparkDB isimli database'i ekledim. Artık Server Explorer penceresinde oluşturduğum database gorunuyor. Ancak projeyi build ettiğimde bir turlu tablolar oluşmuyor. Ek bilgi olarak bu proje başka bir bilgisayarda mevcuttu. Ben oradan alıp solution uzerinde bu projeyi ekledim. Yani App.config dosyası icerisindeki connectionStringler uzerinde de değişiklik yapmam gerekebilir gibi geliyordu. Bende biraz inceleyip user ID olarak root gorunen kısmı kendi kullanıcı adım olan Erkam/WWA olarak değiştirdim ancak yine cozume ulaşamadım.
Yaptığım projeyle ilgili olarak daha detaylı bilgi vermem gerekirse şoyle diyeyim.
Şuanda bu solution uzerinde iki farklı proje ekli. Birisi Veritabanı, diğeri ise bir MVC projesi. Veritabanı projesini derleyip tabloları oluşturduktan sonra MVC projesinde Veritabanı projesini referans olarak gosterdiğim icin MVC projesi uzerinden Veritabanı projesinde oluşturulmuş olan tabloları kullanarak gerekli kayıt işlemlerini gercekleştireceğim.
Umarım sorunumu ve projemi yeterince acıklayabilmişimdir. Eğer anlamadığınız bir nokta varsa sorun lutfen. 2 gundur uğraşıyorum ancak bir turlu cozume ulaşamadım..
Şimdiden yardımcı olan olmayan herkese teşekkurler.
Konuyu kendim cozdum.
Oluşturulmuş olan veritabanı projesi zaten calıştırılabilir turden bir proje değildi. Yalnızca tablolar icin gerekli olan sınıflar yazılmış ve ilgili context dosyası oluşturulmuş durumdaydı.
Defalarca aynı şeyi yazmama ve App.config dosyasındaki connection string ayarlarını doğru bir şekilde defalarca yapmama rağmen bir turlu tabloların local veritabanımda oluşmasını sağlayamıyordum.
Sorunumu dile getirirken yazmış olduğum localde ilgili veritabanını oluşturdum ancak veritabanını oluşturmuş olmama rağmen yinede tablolar oluşmuyor şeklindeki kısımda tamamen yok sayılması gereken bir kısım.
Sorunumun tam olarak neden kaynaklandığını bilmiyorum acıkcası ancak adım adım tekrar projemi oluştururken yaptıklarımı sıralamak istiyorum.
Bana verilmiş olan proje MySQL DB'ye bağlanmak uzere tasarlanmış durumdaydı ve ben her seferinde MySQL'e bağlanabilmek amacıyla yazılmış olan ekstra satırları silerek ya da yorum satırı yaparak projeyi derliyordum. Bunu bıraktım ve projenin icindeki şeyleri tekrar yeni bir proje oluşturarak kendim yazdım.
Daha sonra App.config kısmındaki ayarları kesin bir şekilde doğru yapabilmek amacıyla daha once oluşturmuş olduğum bir projenin ilgili connection string kısmını yeni oluşturduğum veritabanı projemin icine kopyalayıp yapıştırdım. Ardından ilgili kısımları değiştirdim. Size ornek teşkil etmesi amacıyla buraya connection string kısmını koyuyorum.
Kod:Panoya kopyala
Daha sonra context dosyasını oluşturmaya başladım. Context sınıfınızın DbContext'ten turetilmesi konusuna (kalıtım alınmasına) ve OnModelCreating metodunu override yapmaya dikkat ediniz ve unutmayınız.
Tum bunları doğru bir şekilde yaptıktan sonra projenizi yalnızca derleyiniz. Calıştırmaya calışırsanız hata alırsınız. Derlediğinizde soylediğim şeylere uygun bir şekilde hareket ettiyseniz local veritabanınızda ilgili veritabanı ve tablolar oluşacaktır.
Genişletmek icin tıkla...
Unuttuğum bir kısım var. Context dosyasınızı oluşturduktan sonra Package Manager Console'a gelerek enable-migrations komutunu yazınız. İşlem tamamlandıktan sonra yine aynı yerde update-database -force komutunu calıştırınız. Bu işlemde tamamlandıktan sonra projenizi derleyebilirsiniz.
Veritabanı sınıflarında herhangi bir değişiklik yaparsanız daha sonra her seferinde update-database -force komutunu Package Manager Console uzerinde yazmayı unutmayınız. Ancak bu şekilde değişikliklerin veritabanınıza yansımasını sağlayabilirsiniz.
Son olarak unuttuğum son detayı da sizinle paylaşmak istiyorum.
enable-migrations komutunu calıştırdıktan sonra eklenmiş olan Migrations Klasoru'nun icinde bulunan Configruation.cs dosyasına gelerek Kod:Panoya kopyala
AutomaticMigrationsEnabled = false;
kısmındaki false'u true ile değiştirmeniz gerekli.