2014-10-05 15 views
0

我有以下DbContext代碼在EF 6.1.0項目中工作,但與6.1.1我收到投訴Database不是靜態的。任何建議:誰移動了我的數據庫屬性?

public class DataMonitorDbContext : DbContext 
{ 
    private static readonly ImportConfig Config = ImportConfig.Read(); 
    static DataMonitorDbContext() { 
     Database.SetInitializer<DataMonitorDbContext>(null); 
    } 

    public DataMonitorDbContext(string connString = null) 
     : base(!string.IsNullOrEmpty(connString) ? connString : ConnectionString) { 

    } 

    public DbSet<DataRecord> DataRecords { get; set; } 
    public DbSet<LogEntry> LogEntries { get; set; } 

    protected override void OnModelCreating(DbModelBuilder modelBuilder) { 
     base.OnModelCreating(modelBuilder); 
     modelBuilder.Configurations.Add(new DataRecordMap()); 
     modelBuilder.Configurations.Add(new LogEntryMap()); 
    } 

    private static string ConnectionString { 
     get { 
      return "Data Source=" + Config.DatabasePath; 
     } 
    } 
} 
+0

我不能用新的類庫項目,EF 6.1.1和你的代碼在'public class DataMonitorDbContext:DbContext'中重現這個。當你將鼠標懸停在「數據庫」上時,是否指「System.Data.Entity.Database」? – Stijn 2014-10-05 17:11:19

+0

當我將鼠標懸停在它上面時,我收到一條錯誤消息,但是當我轉到聲明時,它會轉到'System.Data.Entity.DbContext',而不是'Database'。 – ProfK 2014-10-05 17:31:40

+0

你能分享文件的全部內容嗎?還是減少版本,仍然有錯誤? – Stijn 2014-10-05 18:04:26

回答

0

您是否嘗試過使用完整的命名空間?

System.Data.Entity.Database.SetInitializer<DataMonitorDbContext>(null); 

如果這樣,那麼你沒有包含正確的名稱空間,或者你有一個命名空間衝突。

+0

聽起來很可能。這將解釋爲什麼當OP導航到'Database'時,VS進入'System.Data.Entity.DbContext'。這個想法進入了我的想法,但這個問題意味着除了EF包的更新之外沒有任何變化,所以我放棄了它。也許OP省略了細節。 – Stijn 2014-10-06 15:03:23

+0

@Stijn - 好的,更新有時可以使用語句更改.... – 2014-10-06 15:07:22

+0

是的,@Stijn,它在我使用完整的命名空間時起作用。確實奇怪的日子。 – ProfK 2014-10-06 16:35:33