我使用的是实体框架5代码优先的方法。这是我的上下文文件:
using IMS.Domain.Inventory;
using IMS.Domain.Security;
using IMS.Domain.StoredProcedures;
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using System.Data.Objects;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace IMS.Domain.DBContext
{
public class IMSDBContext : DbContext
{
public DbSet<ModuleAccounting> ModuleAccountings { get; set; }
public DbSet<ModuleInfo> ModuleInfos { get; set; }
public DbSet<ModuleType> ModuleTypes { get; set; }
public DbSet<UserAccounting> UserAccountings { get; set; }
public DbSet<UserGroup> UserGroups { get; set; }
public DbSet<UserInfo> UserInfos { get; set; }
//
// set a connection string
public IMSDBContext() // Constructor of the Context
{
this.Database.Connection.ConnectionString =
"Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=IMSDB;Data Source=.\\SQLExpress";
}
}
}
在这里,我在构造函数中添加了连接字符串。但是有没有办法将“提供者名称”添加到连接字符串中呢?
发布于 2013-08-25 21:50:33
在db上下文中硬编码连接字符串有什么特殊的原因吗?通常,它应该存储在配置文件中。您可以在配置文件中指定提供程序,并引用上下文中的连接字符串。这将会解决你的问题。
public MyDbContext()
: base("Name=MyDbContext")
{
}
在您的配置文件中
<connectionStrings>
<add name="MyDbContext" connectionString="data source=.\sqlexpress;initial catalog=YourDbName;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient"/>
</connectionStrings>
https://stackoverflow.com/questions/18426807
复制相似问题