2013-03-12 20 views
8

SMR for Sql Server 2008 R2 Standardını kullanmaya çalışıyorum, ancak bir nesneye Dump denediğimde bir sorunla karşılaşıyorum.SMO ile LinqPad'i Kullanma

Error

ilgili kodu:

void Main() 
{ 
    var connectionString = @"Server=(local);Trusted_Connection=True;"; 
    Server server = new Server(new ServerConnection(new SqlConnection(connectionString))); 
    server.ConnectionContext.Connect();  

    server.Dump(); //Error  

    Database database = new Database(server, "master"); 
    database.Refresh(); 

    database.Dump(); // Error 

    IEnumerable<Table> tables = database.Tables.Cast<Table>(); 

    tables.Dump(); //Error 
} 

Assemblies Includes

Düzenleme:

buldum o etrafında bir eser sabit tekrarlama derinliğiyle Dump yöntemini kullanmaktır

Örneğin Dump(1), ancak istisna her nesne için farklı bir düzeyde. Ne oluyor

cevap

4

SMO nesne özelliklerinin birinde GetEnumerator çağıran eylemi istisna atıyor ve LINQPad yalnızca bu özel durum yerine nesne grafiği kalanını damping tarafından tepki vermesidir.

Bunu LINQPad'de bir hata olarak görüyorum ve bu yüzden bir sonraki beta sürümü için düzeltdim.

Bununla birlikte, bu düzeltmeyle bile, bir SMO nesnesindeki Dump() çağrısının sonsuza dek süreceğini görürsünüz, çünkü numaralandırmaları çağlayan çok fazla özelliğe sahiptir. Bu nedenle, ya yineleme derinliğini sınırlamanız ya da 'Sonuçlar için DataGrids' düğmesine tıklamakla eşdeğer olan Döküm (true) 'u çağırmanız gerekir. Veri ızgaralarına boşaltma sonuçları problemi ortadan kaldırır çünkü ızgaralar verileri hızlı bir şekilde verir.