2011-04-24 36 views
2

好吧,所以我已經研究了c#和asp.net足夠長的時間,並且想知道我創建的所有這些自定義類如何與數據庫相關聯。例如。你的自定義類如何與數據庫相關

我有一個一流的呼叫員工

public class Employee 
{ 
    public int ID { get; set; } 
    public string Name { get; set; } 
    public string EmailAddress { get; set; } 
} 

和我有以下4個字段的數據庫:

ID 
Name 
EmailAddress 
PhoneNumber 

好像自定義類是我的數據庫。在asp.net中,我可以簡單地在我的數據庫上運行LINQ to SQL命令,並獲取我的類的整個模式,而無需使用getter和setter輸入自定義類。

所以我們只是說,現在我正在運行查詢來檢索員工列表。我想知道我的應用程序如何映射到我的Employee類到我的數據庫?

回答

1

本身,它沒有。但添加任何ORM或類似的,你開始接近。例如,LINQ-to-SQL(我提到它是因爲它很容易與Visual Studio一起工作),您通常會獲得(由工具給您的)一個自定義的「數據上下文」類,您將其用作:

using(var ctx = new MyDatabase()) { 
    foreach(var emp in ctx.Employees) { 
     .... 
    } 
} 

這是生成TSQL並將數據自動映射到對象。默認情況下,該工具會創建一個單獨的Employee類,但您可以通過部分類來調整它。這也支持插入,數據更改和刪除。

還有一些工具允許重複使用現有的域對象;兩種方法都可以成功 - 每種方法都有優點和缺點。

如果你只想讀取數據,那麼它更容易;一個micro-ORM(如dapper-dot-net)允許您使用我們的TSQL類型來處理繁瑣的實現代碼。

0

沒有ORM tool,您的班級不能直接映射到數據庫,ORM工具將讀取您的配置,並根據您的映射自動將您的班級映射到數據庫行。
這意味着您不需要顯式讀取該行並設置類字段,但必須提供映射文件,並且必須通過ORM框架來加載實體,並且該框架將負責其餘部分

您可以在nHibernate上檢查nHibernate,這裏是getting started

0

你的問題有點含糊,imo。但是你所指的是MVC的模型(Model-View-Controller)架構。

模型,您的員工類,管理應用程序的數據。因此它不僅可以獲取和設置(保存/更新)您的數據,還可以用於通知數據更改。 (通常來看)。

您提到過在使用SQL的地方,通過發送表數據的關聯數組將其保存到數據庫,可以創建和保存整個員工記錄。您爲該類的設置將處理插入數據的唯一SQL語法。在較大的MVC框架中。您的應用程序的模型繼承了其他幾個類來處理適當的保存到MS SQL以外的其他類型的後端。

模型通常還具有處理查找記錄和更新記錄的功能。這通常是通過指定一個搜索字段,然後它返回記錄,其中將包含該ID,並且您通常會將其返回到保存/更新功能中以更改記錄。你也可以綁定到模型的這個級別來創建你正在保存的數據的修訂

那麼模型如何與你的SQL結構直接相關取決於你如何正確使用它。或者您決定使用哪個框架。我相信一個常見的asp.net是微軟的ASP.Net MVC

+0

謝謝rtgibbons。 ASP.NET MVC的工作方式與PHP相比有很大的不同和時尚。 – wchiching 2011-04-25 01:22:58

相關問題