实体框架 - 无法创建文件,因为它已经存在

问题描述 投票:0回答:0

我正尝试在 Visual Studio 中为大学项目建立与基于服务的数据库的连接。目前,我设置了实体来模拟我需要的特定表(登录页面的凭据表)。我还设置了一个

DbContext
,它实现了一个
SqlConnectionFactory
.

但是,每当我在 LINQ 查询中调用

DbContext
时,我总是得到这个异常:

Cannot create file because it already exists

尽管我不是要创建新数据库,而是要访问现有数据库。

数据库配置

public class SoftStocksDBConfiguration : DbConfiguration
{
    public SoftStocksDBConfiguration()
    {
        this.SetDefaultConnectionFactory(new SqlConnectionFactory("Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=C:\\...\\SoftStocksDB.mdf;Integrated Security=True"));
        this.SetProviderServices("System.Data.SqlClient", System.Data.Entity.SqlServer.SqlProviderServices.Instance);
    }

}

数据库上下文

[DbConfigurationType(typeof(SoftStocksDBConfiguration))]
public class SoftStocksDBContext : DbContext
{
    public DbSet<Credential> Credentials { get; set; }
}

在登录中使用 DbContext:

Credential credential;

using (var db = new SoftStocksDBContext())
{
    credential = db.Credentials
                   .FirstOrDefault(c => c.Username == userName && 
                                        c.Password == password);
}
...

我尝试使用不同的连接字符串值来验证连接是否正确。

我试过使用

LocalDbConnectionFactory
而不是
SqlConnectionFactory

我已经尝试启用代码优先迁移,并确保我的实体是最新的并正确映射。

因为我遇到的问题是我只能访问以编程方式添加的记录,所以我尝试使用

db.Credentials.Load()

加载数据

我试过重新启动 Visual Studio。

我试过从 GUI 关闭数据库连接。

我试过在连接字符串中使用不同的参数,例如

Initial Catalog
.

我已经尝试按照指定

in this question
运行update-database但我得到与上面相同的错误消息。

c# entity-framework linq
© www.soinside.com 2019 - 2024. All rights reserved.