2
鑑於此代碼片段如何通過從MVC3
public abstract class Foo
{
private static SqlConnection _sqlConnection;
protected SqlConnection GetOpenConnection()
{
if (_sqlConnection == null)
{
_sqlConnection = new SqlConnection("connection string");
}
return _sqlConnection;
}
protected abstract void Execute();
}
public class FooImpl : Foo
{
protected override void Execute()
{
var myConn = GetOpenConnection();
var dog = myConn.Query<dynamic>("select 'dog' Animal");
var first = dog.First();
string animalType = first.Animal;
// more stuff here
}
}
你將如何包裝在一個異形連接的連接,如果你沒有進入一個MVC-迷你分析器連接到一個基類連接創建過程?重寫超類中的代碼並將其包裝在那裏?這將涉及更改從基地繼承的數百個類。我更喜歡改變基類的方法,只需要對supers進行一些必要的修改。
謝謝 斯蒂芬
尼斯;雖然在連接創建過程中很少有人討厭,但結果通常很有啓發性,可以消除酸味; p –
總的來說,我只是向我們的開發者展示了這一點,燈泡開始閃爍。 –
它變得更好。我向我們的數據庫管理員展示了我認爲正在執行的查詢,他們進來的時間大約爲150毫秒,他說的第一件事是「你知道如果你將參數從nvchar(4000)更改爲varchar(15)以獲得更好的性能「是的,我們現在所有的查詢都在10ms以內。哇靠!根據規範http://code.google.com/p/dapper-dot-net/ Ansi字符串和varchar –