我正尝试在 Visual Studio 中为大学项目建立与基于服务的数据库的连接。目前,我设置了实体来模拟我需要的特定表(登录页面的凭据表)。我还设置了一个
DbContext
,它实现了一个SqlConnectionFactory
.
但是,每当我在 LINQ 查询中调用
DbContext
时,我总是得到这个异常:
尽管我不是要创建新数据库,而是要访问现有数据库。
数据库配置
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
但我得到与上面相同的错误消息。