none
MVC 4 Entity Framework CodeFirst ile Veritabanı ve Tabloları Oluşturamama Problemi RRS feed

  • Soru

  • Merhaba Arkadaşlar,

    MVC 4 projesinde Entity Framework Code First yaklaşımı ile veritabanı ve tabloları oluşturmak istiyorum fakat hiç birşeyi oluşturamadım...
    class yapım şu şekilde;

    1 adet Kategori Class ım var

    publicclassKategoriler {         [Key]         publicint KategoriID { getset; }         publicstring KategoriAd { getset; }         publicvirtualList<Urunler> Urunlers { getset; }

    }

          

    1 adet Ürünler class ım var

    public class Urunler
    {
            [Key]
            public int UrunID { getset; }
            public string  UrunAd { getset; }
            public string UrunResim { getset; }
            public int KategoriID { getset; }
            public virtual Kategoriler Kategoriler { getset; }
    }

    bunların set edilmesi için birde ModelContext isimli bir class oluşturdum

    public class ModelContext : DbContext
        {
            public DbSet<Kategoriler> Kategorilers { getset; }
            public DbSet<Urunler> Urunlers { getset; }
     
            protected override void OnModelCreating(DbModelBuilder modelBuilder)
            {
                Database.SetInitializer(new DropCreateDatabaseIfModelChanges<ModelContext>());
                base.OnModelCreating(modelBuilder);
            }
        }



    son olarak web.config içerisinde ki connectionString im bu şekilde

    <add name="ModelContext" connectionString="Data Source=.;Initial Catalog=ModelContext;Integrated Security=True;" providerName="System.Data.SqlClient" />
    

    projeyi build ettiğim de veritabanı oluşmuyor.. nerde  eksiğim var anlayamadım,

    birde  Visual Studio daki Server Expolerer dan gelen hata şu şekilde

    Cannot open database "ModelContext" requested by the login. The login failed.
    Login failed for user 'Pc'.

    yardımlarınız için şimdiden teşekkür ederim.



    • Düzenleyen fsem 17 Eylül 2014 Çarşamba 21:33
    17 Eylül 2014 Çarşamba 20:49

Yanıtlar

  • uzun araştırmalar sonucunda sorunumu çözdüm.. 
    Sql Server da herhangi bir ModelContext adında bir veritabanı bulmadığı için login hatası veriyor.. öyle bir DB  yokki ben login olayım demek istiyor aslında :)
    yukardaki (ilk posttaki) işlemleri yaptıktan sonra ilk olarak Sql Server a manuel veritabanı oluşturdum ModelContext adında (yani connectionString deki initial catalog da ne yazıyorsa) sonrasında
    Package Console Manager ı açıp Enable-Migrations –EnableAutomaticMigrations komut satırını çalıştırdım bşarılı bir şekilde işlem tamamlandıktan sonra son olarak Update-Database komutunu çalıştırdıktan sonra modellediğimiz tablolar gelmiş oldu..

    Entity Framework CodeFirst kullanırken bu şekilde bir hata alan olursa yardımcı olması açısından çözümü paylaştım..
    herkese iyi çalışmalar...
    • Yanıt Olarak İşaretleyen fsem 18 Eylül 2014 Perşembe 22:19
    18 Eylül 2014 Perşembe 22:19

Tüm Yanıtlar

  • EF ile alakası yok ki, database e bağlanamoyorsun. IIS de mi debug ediyorsun? SqlServer authntication ile denermisin.

    www.mvcblog.org
    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com

    18 Eylül 2014 Perşembe 06:19
    Moderatör
  • Evet IIS de... normal debug yapıyorum ve
    SqlServer authntication ile de aynı hatayı alıyorum Önay hocam,

    Cannot open database "ModelContext" requested by the login. The login failed.
    Login failed for user 'sa'.
    18 Eylül 2014 Perşembe 06:45
  • Ya şifresi yanlış yada Mixed mode değil. IIS'in default application pool kullanıcısı SQL'e admin yetkisi ile bağlanamaz. Neden IIS Express kullanmıyorsun debug için? daha rahat edersin.

    www.mvcblog.org
    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com

    18 Eylül 2014 Perşembe 07:05
    Moderatör
  • Önay Hocam ilginiz için teşekkür ederim şöyle söyleyim..
    vs2013 olduğu için zaten default olarak IIS Express kullanmış oluyorum.

    birde normal bir şekilde sql server a hem windows hemde sql authentication ile bağlanabiliyorum, yada Ado.Net Entity Data Model kullanarak da var olan veritabanını modeleme yapıyor herhangi bir login problemi yaşamıyorum..  sadece code first ile yapmak istediğim de veritabanını oluşturmuyor ve o hatayı veriyor..

    18 Eylül 2014 Perşembe 07:31
  • uzun araştırmalar sonucunda sorunumu çözdüm.. 
    Sql Server da herhangi bir ModelContext adında bir veritabanı bulmadığı için login hatası veriyor.. öyle bir DB  yokki ben login olayım demek istiyor aslında :)
    yukardaki (ilk posttaki) işlemleri yaptıktan sonra ilk olarak Sql Server a manuel veritabanı oluşturdum ModelContext adında (yani connectionString deki initial catalog da ne yazıyorsa) sonrasında
    Package Console Manager ı açıp Enable-Migrations –EnableAutomaticMigrations komut satırını çalıştırdım bşarılı bir şekilde işlem tamamlandıktan sonra son olarak Update-Database komutunu çalıştırdıktan sonra modellediğimiz tablolar gelmiş oldu..

    Entity Framework CodeFirst kullanırken bu şekilde bir hata alan olursa yardımcı olması açısından çözümü paylaştım..
    herkese iyi çalışmalar...
    • Yanıt Olarak İşaretleyen fsem 18 Eylül 2014 Perşembe 22:19
    18 Eylül 2014 Perşembe 22:19