0

我的代码有两个问题。

  1. 我使用代码优先方法创建了一个数据库,代码运行成功,但是当我打开 SQL Server Management Studio 时,我找不到数据库。

  2. 然后由于某种原因,我更改了学生班级的名称(“将首字母设为大写”),然后当我尝试运行它时,它显示错误。

学生班级:

class Student
{
    public Student()
    {
    }

    public int StudentID {get;set;}
    public string StudentName { get; set; }
    public DateTime? DateOfBirth { get; set; }
    public decimal Height { get; set; }
    public float Weight { get; set; }

    public Standard Standards { get; set; }
}

标准等级:

class Standard
{
    public Standard()
    {
    }

    public int StandardID { get; set; }
    public string StandardName { get; set; }
    public ICollection<Student> students { get; set; }
}

上下文类:

class StudentContext : DbContext
{
    public StudentContext() : base()
    {
    }

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

主类:

class Program
{
    static void Main(string[] args)
    {
        using (var cxt = new StudentContext())
        {
            Student st = new Student() { StudentName = "Vineeth reddy" };
            cxt.Students.Add(st);
            cxt.SaveChanges();
        }
    }
}

错误消息cxt.Students.Add(st);

EntityFramework.dll 中出现“System.InvalidOperationException”类型的未处理异常

附加信息:应用程序配置文件中的连接字符串“StudentContext”不包含必需的 providerName 属性

我添加的数据库不存在:

在此处输入图像描述

任何帮助将不胜感激。我是一个初学者,如果你还不能说..所以请比你平时更详细一点。非常感谢您的宝贵时间。

4

1 回答 1

1

我弄清楚为什么我的数据库不在 SQL Server Management Studio 中是因为我没有在app.config文件中提供连接字符串。

我补充说:

<ConnectionStrings>
    <add name="StudentContext"
         connectionString = "server=.; database = Sample; integrated security = true"
         providerName = "system.Data.sqlClient"/>
</ConnectionStrings>

这在 SQL Server Management Studio 中创建了一个数据库名称Sample,但我仍然想知道如果我没有在app.config文件中提供连接字符串属性,数据将保存在哪里。

如果我再次更改学生姓名,我会像以前一样收到错误吗?如果我这样做,我该如何解决?

于 2016-09-19T00:15:55.473 回答