2016-12-06 84 views
0

我使用實體框架6.0,這裏是我如何設置連接超時:實體框架ConnectionTimeout不行

DbContext cc = new DbContext("Data Source=VLT180;Initial Catalog=VISTAIT;Persist Security Info=True;User ID=XXXXXXXX;Password=XXXXX;Connect Timeout=6"); 

cc.Database.ExecuteSqlCommand("select * from table1"); 

但是,這並不工作,當我斷開我的網絡,代碼將掛在「ExecuteSqlCommand」方法無限。如果我重新連接我的網絡,它會按預期正常工作。

我使用的是最新的實體框架:6.1.3

有什麼玄機?

+0

任何與數據庫相關的操作都會掛在那裏,看起來數據庫連接超時根本不起作用。 – DavidWang2007

回答

0

您的上下文必須看起來像

public class Context : DbContext 
{ 
    public Context(string connectionString) : base(connectionString) 
    { 
    } 

    public DbSet<Quote> Quote { get; set; } 
} 

然後如下

using (var context = new Context()) 
{ 
    var quotes = context.Quote.SqlQuery("SELECT * FROM dbo.Quote").ToList(); 
} 

您在dbset報價執行sql可以執行原始的SQL。