实体框架教程(简单的代码优先示例)不起作用

时间:2015-06-28 12:11:18

标签: c# entity-framework

今天我开始关注实体框架教程:Simple Code First Example

我想我应该拥有它应有的一切,但我的应用程序不起作用。

这是我的代码:

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);

它也没有创建任何数据库和表格。

我按照教程中的所有内容进行操作,并且不知道为什么它不起作用。

编辑: 它确实抛出了60秒的错误(附加信息在抛光,我现在不知道如何在VS中将其更改为英文): EntityFramework.dll中出现未处理的“System.Data.SqlClient.SqlException”类型异常

其他信息:Wystąpiłbłądzwiązanyzieciąlubwystąpieniempodczasustanawianiapołączeniazserwerem programu SQL Server。 niemożnaodnaleźćserweralub jestonniedostępny。 Sprawdź,czynazwawystąpieniajestpoprawna i czy konfiguracja serwera programu SQL Server zezwalanapołączeniazdalne。 (提供者:SQL网络接口,错误:26 - Błądpodczaslokalizowaniaokreślonegoserwera/wystąpienia)

我必须补充一点,我正在使用Visual Studio 2013社区和此版本的visual studio中包含的localDB。

1 个答案:

答案 0 :(得分:0)

您是否尝试将导航属性设为虚拟?此外,如果要将这两个Student和Standard类相互连接,则需要定义外键。

例如,在学生班中添加:

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; }
}

希望这会对你有所帮助