我想在Windows应用程序中使用EF 4动态建立连接。尝试记录时,会出现错误:不支持关键字:'提供商'
代码的此错误:var nota = db.NotasFiscais.Find(28406);
代码在下面
主要申请
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
NF.DataBase.Global.Conexao = new System.Data.EntityClient.EntityConnectionStringBuilder();
NF.DataBase.Global.Conexao.Provider = "System.Data.SqlClient";
NF.DataBase.Global.Conexao.ProviderConnectionString = "Data Source=source;Initial Catalog=base;User ID=sa; Password=pass;";
Application.Run(new Form1());
}
的DbContext
public class ERPContext : DbContext
{
public DbSet<NotasFiscais> NotasFiscais { get; set; }
public DbSet<NFEmissores> NFEmissores { get; set; }
public DbSet<Cidades> Cidades { get; set; }
public ERPContext()
: base(NF.DataBase.Global.Conexao.ToString())
{
Database.SetInitializer<ERPContext>(null);
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<NotasFiscais>().ToTable("NotasFiscais");
modelBuilder.Entity<NFEmissores>().ToTable("NFEmissores");
modelBuilder.Entity<Cidades>().ToTable("Cidades");
}
}
字体:
private void button1_Click(object sender, EventArgs e)
{
var db = new ERPContext();
var nota = db.NotasFiscais.Find(28406);
...
}
答案 0 :(得分:0)
改变这个:
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
NF.DataBase.Global.Conexao = new System.Data.EntityClient.EntityConnectionStringBuilder();
NF.DataBase.Global.Conexao.Provider = "System.Data.SqlClient";
NF.DataBase.Global.Conexao.ProviderConnectionString = "Data Source=source;Initial Catalog=base;User ID=user; Password=pass;";
有:
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
NF.DataBase.Global.Conexao = new System.Data.EntityClient.EntityConnectionStringBuilder();
// not provider
NF.DataBase.Global.Conexao.ProviderConnectionString = "Data Source=source;Initial Catalog=base;User ID=user; Password=pass;";
来源: