2014-05-03 3 views
0

Я хочу динамически установить соединение с помощью EF 4 в приложении Windows. При попытке записи в автобусе дается сообщение об ошибке: Ключевое слово не поддерживается: «поставщик».Entity Framework DBContext и dynamic ConnectionString

Эта ошибка для кода: 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

http://social.msdn.microsoft.com/Forums/vstudio/ EN-US/77ff9db1-c69d-4a14-B606-d208832b8756/ключевые слова не поддерживаемые-провайдер? форум = netfxbcl – Misters

ответ

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;"; 

Источники:

http://social.msdn.microsoft.com/Forums/vstudio/en-US/77ff9db1-c69d-4a14-b606-d208832b8756/keyword-not-supported-provider?forum=netfxbcl

Смежные вопросы