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

20
    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行:using (var db = new SiteContext())
第29行:{
第30行:db.User.Add(u);
第31行:db.SaveChanges();
第32行:}

第30行引发了异常。

希望有人可以帮助。


2
“c:\users\oren\documents\visual studio 2012\Projects\ResturantSite\ResturantSite\App_Data” 文件夹是否存在?如果存在,应用程序是否有写入权限? - DavidG
1
文件夹不存在 我怎么知道应用程序是否有写入它的权限? - Erez
1
创建它并看看会发生什么! - DavidG
1
Visual Studio有自动完成特定文件夹的选项。 - DavidG
1
我正在尝试通过实体创建那个数据库。 - Erez
1
但是如果它想要访问的文件夹不存在,它就无法创建数据库。 - DavidG
2个回答

61
你的应用程序缺少 App_Data 文件夹。右键单击你的项目,选择 Add,然后选择 Add ASP.Net Folder 并选择 App_Data 文件夹。
这将确保你的应用程序存在正确的文件夹。

我在VS 2015中没有“添加ASP.Net文件夹”选项,该怎么办? - Alejandro Lozdziejski
1
你需要将文件夹添加到你的网站项目中,而不是类库中。 - DavidG

6

我解决了这个错误,删除了当前的Add_Data文件夹,因为我是从Github仓库克隆的项目,然后我重新添加了App_Data文件夹,并使用update-database命令运行了迁移。这对我起作用了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接