2016-01-25 73 views
0

我正在使用VS2013 Ultimate創建WPF應用程序,其中我想在Visual Studio中創建本地數據庫。下面是我想寫如何使用EF5代碼優先方法在App.config文件中編寫connectionString

的ConnectionString在app.config文件

<connectionStrings> 
    <add name="RoznamchaContext" 
    connectionString="Server=.;database=sample;integrated security=true;"/> 
</connectionStrings> 

上下文類樣品的connectionString這裏

class RoznamchaContext : DbContext 
{ 
    public DbSet<Admin> Admins { get; set; } 
    public DbSet<Tag> Tags { get; set; } 
    public DbSet<Task> Tasks { get; set; } 
    public DbSet<Task_Tag> Task_Tags { get; set; } 

    public RoznamchaContext() : base("RoznamchaContext") 
    { } 

    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); 
    } 
} 

這是我的主類在那裏我有一個按鈕,當我按下按鈕時,它給了我一個圖像中顯示的異常,按鈕點擊事件也在下面給出。

public partial class MainWindow : Window 
{ 
    public MainWindow() 
    { 
     Database.SetInitializer<RoznamchaContext>(null); 
     InitializeComponent(); 
    } 

    public static int count = 0; 

    private void btn_Click(object sender, RoutedEventArgs e) 
    { 
     try 
     { 
      RoznamchaContext context = new RoznamchaContext(); 
      context.Tags.Add(new Models.Tag { PK_Tag = count, Name = "Tag" + count }); 
      context.SaveChanges(); 
      count++; 
      btn.Content = count.ToString(); 
     }catch(Exception ex) 
     { MessageBox.Show(ex.Message); } 
    } 
} 

此圖像顯示異常的 enter image description here

+0

您是否嘗試過在看這個http://www.connectionstrings.com/sql-server/ – Ruskin

回答

1

連接字符串差不多吧名爲「btn_Click」點擊事件拋出。如果您正在使用實體框架,你還應該添加providerName到您的配置:

<connectionStrings> 
    <add name="RoznamchaContext" 
     connectionString="Server=.;database=sample;integrated security=true;" 
     providerName="System.Data.SqlClient" /> 
</connectionStrings> 

現在你可以使用連接字符串名稱爲DbContext參數:

class YourContext : DbContext 
{ 
    public YourContext() 
     : base("RoznamchaContext") 
    { } 
} 

您還可以使用約定優於配置時您使用與數據上下文相同的名稱命名連接字符串。然後你可以使用默認DbContextconstructor(不帶參數):

class RoznamchaContext : DbContext 
{ 
} 

<add name="RoznamchaContext" 
    connectionString="Server=.;database=sample;integrated security=true;" 
    providerName="System.Data.SqlClient" /> 

UPDATE

另一種解決方案是指定在應用程序啓動數據庫初始化:

// add next line to the Run() method or Main method or other initialization method 
Database.SetInitializer<RoznamchaContext>(null); 
+0

我已根據您的建議代碼進行了更改。請再次通過這個問題,我現在更新它的細節。 – WASIF

+0

謝謝瓦迪姆,非常感謝。錯誤正在消失與創建新的錯誤;-) ---現在我已經添加Database.SetInitializer (null);在我的MainWindow類的構造函數中出現錯誤,請查看更新後的問題 – WASIF

+0

當它提交SaveChanges()方法時出現異常 – WASIF

相關問題