.mdf“因操作系统错误2失败(系统找不到指定的文件。)

时间:2014-06-10 15:57:42

标签: c# sql asp.net database entity-framework

    protected void register_Click(object sender, EventArgs e)
    {
        AddUser(userName.Text, password.Text, confirm.Text);
    }

    void AddUser(string name, string pass, string confirm)
    {
        User u = new User(name, pass, confirm);

        if (u.Valid)
        {
            using (var db  = new SiteContext())
            {
                db.User.Add(u);
                db.SaveChanges(); 
            }
        }
    }
}

public class User 
{
    public int UserId { get; set; }
    public string UserName { get; set; }
    public string Password { get; set; }
    public bool Valid { get; set; }

    public User(string _name,string _password,string _confirm)
    {
        if (CheckPassword(_password, _confirm))
        {
            Password = _password;
            UserName = _name;
            Valid = true;
        }
        else
            Valid = false;
    }

    private bool CheckPassword(string _password, string _confirm)
    {
        if (_confirm.Equals(_confirm))
            return true;
        return false;
    }
}

public class SiteContext : DbContext 
{
    public DbSet<User> User { get; set; }
}

我正在尝试使用Entity Framework创建一个新数据库,但我总是得到该异常

  

文件“c:\ users \ oren \ documents \ visual studio 2012 \ Projects \ ResturantSite \ ResturantSite \ App_Data \ ResturantSite.SiteContext.mdf”的目录查找失败,出现操作系统错误2(系统找不到文件指定。)。
  CREATE DATABASE失败。无法创建列出的某些文件名。检查相关错误

     

第28行:使用(var db = new SiteContext())
  第29行:{
  第30行:db.User.Add(u);
  第31行:db.SaveChanges();
  第32行:}

第30行抛出异常

我希望有人可以提供帮助

3 个答案:

答案 0 :(得分:40)

您的应用程序缺少App_Data文件夹。右键单击您的项目,选择Add,然后选择Add ASP.Net Folder并选择App_Data文件夹。

这可确保您的应用程序存在正确的文件夹。

答案 1 :(得分:2)

我遇到了同样的错误,并通过删除当前的App_Data文件夹,然后通过右键单击该项目并从“添加ASP.Net文件夹”选项中添加新的App_Data文件夹来创建一个新错误。

答案 2 :(得分:2)

我修复了删除当前Add_Data文件夹的错误,因为我已经从Github存储库克隆了项目,然后又添加了App_Data文件夹并使用update-database命令运行了迁移。这对我有用。