2013-01-22 33 views
0

通常我使用Entity Framowrk作爲我的ORM工具。 我真的很喜歡'功能導入'功能和代碼生成器。ORM僅適用於存儲過程:首選工具

但是,一旦我閱讀了非常厚實和非常嚴肅的書籍,它只是使用EF來調用SP的不好主意。

作者忘記的只是一件小事:這種DB調用策略最適合什麼工具?

+0

你遇到一些問題,當使用EF與存儲過程?有些東西不行?它慢嗎?爲什麼你想改變你的ORM? – platon

+0

'好吧,我非常喜歡它。但是......我不是一個人在我的部門:) – alerya

回答

1

退房BLToolkit,極低學習曲線對比EF

查看此Blt擴展 - >bltoolkit-storedprocedures2csharp-t4/ 使用T4模板爲您的存儲過程生成函數

普通Bltoolkit

using(var db = new DbManager()) 
{ 
    return db 
    .SetSpCommand(
     "Person_SaveWithRelations", 
     db.Parameter("@Name", name), 
     db.Parameter("@Email", email), 
     db.Parameter("@Birth", birth), 
     db.Parameter("@ExternalID", exId), 
    ) 
    .ExecuteObject<Person>(); 
} 

與擴展

using (var db = new DataManager()) 
{ 
    return db 
    .Person 
    .SaveWithRelations(
     name, 
     email, 
     birth, 
     exId 
    ) 
    .ExecuteObject<Person>(); 
} 

(免責聲明:未使用的擴展自己,因爲我沒有很多SP公司的)

0

我認爲從Microsoft Enterprise Library的數據訪問塊是最好的選擇。我已經在少數幾個項目中使用它來只用存儲過程來查詢外部數據庫。最新版本配置非常簡單,使用方便。它也不會讓你的功能超載,只提供你所需要的。 如果你想要一些簡單而快速的配置和用法,請使用它,這是我的建議。

2

如果你已經投入了時間學習EF,它適用於你堅持它。另外對於大多數項目來說,像Dapper,Massive和PetaPoco這樣的微型ORM就足夠了。例如,Dapper被開發爲使用@ StackExchange我相信 - 它現在是開源的。

+0

看起來像Dapper很好。 – alerya

相關問題