none
ASP.Net mvc de code first ile veritabanı oluşturma hatası RRS feed

  • Soru

  • Merhaba  yeni başladım asp mvc ye ve  entity frameworkte veritabanı claslarımı oluşturdum ve gerekli değişiklikleri yaptım..
    uygulamayı derlediğimde global asax dosyamdaki veitabanına aktarma yerinde hata alıyorum..
    global asax kodlarım

    using twitter.Data;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    using System.Web.Optimization;
    using System.Web.Routing;

    namespace twitter
    {
        public class MvcApplication : System.Web.HttpApplication
        {
            protected void Application_Start()
            {
                using (MvcProjesiContext db = new MvcProjesiContext())
                {
    db.Database.CreateIfNotExists();// hatayı burada alıyorum
                }
                AreaRegistration.RegisterAllAreas();
                FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
                RouteConfig.RegisterRoutes(RouteTable.Routes);
                BundleConfig.RegisterBundles(BundleTable.Bundles);
            }
        }
    }

    yardımlarınız için teşekkürler

                   

    mskorkt


    • Düzenleyen mskorkt 13 Mart 2015 Cuma 20:53
    13 Mart 2015 Cuma 20:01

Yanıtlar

  • Connection stringinizde hata olabilir. sql instance da hata olabilir. İlk önce connection stringi kontrol edin. Büyük ihtimalle siz verdiğiniz linkte ki siteden projeyi indirdiniz. İlk baktığımda sql cümlesi eksik gibi duruyor.

    <add name="XXXX" 
    connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\XXXX.mdf;Initial Catalog=XXXX;Integrated Security=True" 
    
    providerName="System.Data.SqlClient" />

    Ondan sonra sql server kullanıyorsanız ilk önce sql serverdan (localdb)\v11.0 a bağlanmaya çalışın. Express kullanıyorsanızda hizmetlerde sql Express in çalışıp çalışmadığını kontrol edin.

    Mvc öğrenmek istiyorsanda kaynak olarak : www.asp.net/mvc

    • Yanıt Olarak İşaretleyen mskorkt 15 Mart 2015 Pazar 10:10
    14 Mart 2015 Cumartesi 17:10

Tüm Yanıtlar

  • Bence EF kullanmadan önce biraz doküman okumak faydalı olur. Burada Code First kullanımı hakkında bilgi alabilirsin. Ondan sonra application start daha doğrusu global.asax niye kullanılır onu araştırmanda fayda var.

    Hata veriyor demişsiniz ama hata nedir? İkincisi senin database'in aslında bir nevi MvcProjesiContext class'ındır. yani o classtan nesne yaratmadan önce senin database'in oluşmuş olması gerekiyor. Burada aklımıza constructorların gelmesi gerekiyor.

     public MvcProjesiContext(): base("Name=ConnectionString") 
            {
                Database.SetInitializer<MvcProjesiContext>(new CreateDatabaseIfNotExists<MvcProjesiContext>());
            }

    Not: Bu yorumu düzgün bir şekilde migration oluşturduğunu esas alarak yapıyorum. Yani Enable-Migrations, Add-Migrations gibi komutlar sana yabancı geliyorsa Code First'ü iyi incele!
    • Düzenleyen Berdann 14 Mart 2015 Cumartesi 09:12
    14 Mart 2015 Cumartesi 09:10
  • http://www.abdurrahmangungor.com/asp-net-mvc-code-first-ile-veritabani-islemleri-2-asp-net-mvc-yazi-dizisi-12/

    burdan yararlanarak yaptım enable ve add migrations gibi komutları kullandım da yeniyim dediğim gibi..

    hataya gelcek olursak


    mskorkt

    14 Mart 2015 Cumartesi 13:12
  • Connection stringinizde hata olabilir. sql instance da hata olabilir. İlk önce connection stringi kontrol edin. Büyük ihtimalle siz verdiğiniz linkte ki siteden projeyi indirdiniz. İlk baktığımda sql cümlesi eksik gibi duruyor.

    <add name="XXXX" 
    connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\XXXX.mdf;Initial Catalog=XXXX;Integrated Security=True" 
    
    providerName="System.Data.SqlClient" />

    Ondan sonra sql server kullanıyorsanız ilk önce sql serverdan (localdb)\v11.0 a bağlanmaya çalışın. Express kullanıyorsanızda hizmetlerde sql Express in çalışıp çalışmadığını kontrol edin.

    Mvc öğrenmek istiyorsanda kaynak olarak : www.asp.net/mvc

    • Yanıt Olarak İşaretleyen mskorkt 15 Mart 2015 Pazar 10:10
    14 Mart 2015 Cumartesi 17:10
  • kaynak ve yardımcı oldugunuz için teşekkür ederim. birde şöyle bi hata alıyorum diğer sorunda bundan kaynaklı olabilir mi ?

    

    mskorkt

    15 Mart 2015 Pazar 10:14
  • References bölümünden Microsoft.SqlServer dll ini ekleyiniz.

    Mail Blog Web Site

    15 Mart 2015 Pazar 11:15