實體框架code first and automatic migrations是您可以使用的最簡單的ORM之一。它非常靈活,在Microsoft堆棧中得到很好的支持,並且首先使用代碼,這是開發數據庫的最快方法之一。
首先使用Entity Framework代碼,將數據模型定義爲普通的C#類。這將對應產品表:
public Product {
public int Id { get; set; }
public string Name { get; set; }
}
創建一個數據庫上下文。
public MyDbContext : DbContext {
public DbSet<Product> Products { get; set; }
}
將連接字符串添加到Web。config,然後在軟件包管理器控制檯中運行命令:
>Enable-Migrations –EnableAutomaticMigrations
>Update-Database
而且您現在有一個帶有Products表的功能數據庫。當您對類進行更改時,只需再次運行Update-Database,它就會爲您遷移架構。
要添加新的產品:
using (var db = new MyDbContex()
{
// get product with id == 1
Product product = db.Products.Single(p => p.Id == 1);
}
至於存儲庫模式,它只是一個design pattern:
爲
using (var db = new MyDbContex()
{
Product product = new Product() { Id = 1, Name = "Tablet" };
db.Products.Add(product);
db.SaveChanges();
}
查詢數據變得容易。有很多不同的variations of the repository pattern,但它實際上是將數據存儲與數據訪問層分開。這使得單元測試更容易,而不必依賴外部數據庫。
編輯您的評論:有一些使用EF和存儲過程的方法。見Does Entity Framework Code First support stored procedures?和Using Stored Procedure to Insert Data。
NET ORMs - http://stackoverflow.com/questions/1377236/nhibernate-entity-framework-active-records-or-linq2sql/ –
我想指出,我爲CodeSmith Tools工作,我們總是願意與客戶合作定價。只需發送一封電子郵件(codesmithtools.com/contactus)即可。我們有EF模板,但他們不使用存儲庫模式。但是,您可以自定義模板/生成的代碼,以便輕鬆使用通用存儲庫模式。還有一句老話:能爲您節省大量時間的工具非常值得黃金價格。 –