2015-06-28 3 views
0

Сегодня я начал следующий в Entity Framework учебник: Simple Code First ExampleEntity Framework учебник (простой код, первый пример) не работает

Я думаю, что у меня есть все, как это должно быть, но мое приложение не работает.

Вот мой код:

public class Student 
{ 
    public Student() 
    { 

    } 
    public int StudentID { get; set; } 
    public string StudentName { get; set; } 
    public DateTime DateOfBirth { get; set; } 
    public byte[] Photo { get; set; } 
    public decimal Height { get; set; } 
    public float Weight { get; set; } 

    public Standard Standard { get; set; } 
} 

public class Standard 
    { 
     public Standard() 
     { 

     } 
     public int StandardId { get; set; } 
     public string StandardName { get; set; } 

     public ICollection<Student> Students { get; set; } 
    } 

public class SchoolContext : DbContext 
{ 
    public SchoolContext() 
     : base() 
    { 

    } 

    public DbSet<Student> Students { get; set; } 
    public DbSet<Standard> Standards { get; set; } 
} 

class Program 
{ 
    static void Main(string[] args) 
    { 
     using (var ctx = new SchoolContext()) 
     { 
      Student stud = new Student() { StudentName = "New Student" }; 

      ctx.Students.Add(stud); 
      ctx.SaveChanges(); 
      Console.WriteLine("done."); 
     } 
    } 
} 

Он строит без каких-либо ошибок или предупреждений, консоль запускается, но он не идет мимо

ctx.Students.Add(stud); 

Он также не создает каких-либо баз данных и таблиц ,

Я следил за всем, начиная с учебника, и понятия не имею, почему это не работает.

EDIT: Это делает бросить errorafter 60 секунд (Дополнительную информацию в полируешь, я не очень-то теперь, как изменить его на английский в VS): необработанного исключения типа «System.Data.SqlClient. SqlException 'произошло в EntityFramework.dll

Дополнительная информация: Wystąpił błąd związany z siecią lub wystąpieniem podczas ustanawiania połączenia z serwerem programu SQL Server. Nie można odnaleźć serwera lub jest на niedostępny. Sprawdź, czy nazwa wystąpienia jest poprawna i czy konfiguracja serwera programu SQL Server zezwala na połączenia zdalne. (провайдер: Сетевые интерфейсы SQL, ошибка: 26 - Błąd podczas lokalizowania określonego serwera/wystąpienia)

И я должен добавить, я использую Visual Studio 2013 Community и localDB, который включен в эту версию визуальной студии.

+0

Я не могу видеть строку подключения, вы должен предоставить его в вашем контексте. –

+0

Извините, ссылка работает сейчас. В учебнике нет ничего о строке подключения – user3662546

+0

http://www.entityframeworktutorial.net/EntityFramework4.3/dbcontext-vs-objectcontext.aspx проверить это. –

ответ

0

Вы пытались сделать свои свойства навигации виртуальными? Также, если вы хотите связать эти два класса Student и Standard друг с другом, вам нужно определить внешние ключи.

Например добавить это в классе Student:

public class Student 
{ 
    public Student() 
    { 

    } 
    public int StudentID { get; set; } 
    public string StudentName { get; set; } 
    public DateTime DateOfBirth { get; set; } 
    public byte[] Photo { get; set; } 
    public decimal Height { get; set; } 
    public float Weight { get; set; } 

    public int StandartID{get;set;}//foreign key references Standard(StandardId) 
    public virtual Standard Standard { get; set; }//navigation property 
} 

И это в Stadart классе:

public class Standard 
{ 
    public Standard() 
    { 

    } 
    public int StandardId { get; set; } 
    public string StandardName { get; set; } 

    public int StudentID{get;set;}//foreign key references Student(StudentID) 
    public virtual ICollection<Student> Students { get; set; } 
} 

Надеется, что это поможет вам