色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

Linq To Sql進階系列(一)從映射講起

系列文章導(dǎo)航:

Linq To Sql進階系列(一)從映射講起

Linq To Sql進階系列(二)M:M關(guān)系

Linq To Sql進階系列(三)CUD和Log

Linq To Sql進階系列(四)User Define Function篇

Linq To Sql進階系列(五)Store Procedure篇

Linq To Sql進階系列(六)用object的動態(tài)查詢與保存log篇

Linq To Sql進階系列(七)動態(tài)查詢續(xù)及CLR與SQL在某些細節(jié)上的差別


本系列,或多或少,直接或間接依賴入門系列知識。但,依然追求獨立成章。因本文作者水平有限,文中錯誤難免,敬請讀者指出并諒解。本系列將會和入門并存。

案例
某君被邀為一超市設(shè)計數(shù)據(jù)庫,用來存儲數(shù)據(jù)。該君根據(jù)該超市中實際出現(xiàn)的對象,設(shè)計了Customer, Employee,Order, Product等表,用來保存相應(yīng)的客戶,員工,訂單,貨品等。太好了,該君很有oo的思想嗎。

如果,你被要求用類及對象,來描述該關(guān)系型數(shù)據(jù),你該如何做呢?在linq推出之前,ADO.NET被用來做數(shù)據(jù)訪問層。而后,程序員需要自己去編寫事務(wù)邏輯層中所出現(xiàn)的類。比如,Customer, Employee,Order, Product等。然后,程序員組裝所需的sql語句,通過ADO.NET,將返回的記錄,來初始化Customer等類的對象。在這里,你已經(jīng)自己動手將Customer表和Customer類關(guān)聯(lián)了起來。從Linq To Sql的設(shè)計來看,它主要是為了解決data!=objects 的問題而產(chǎn)生的。現(xiàn)在,有了Table和Class之間的映射,數(shù)據(jù)和對象之間就可以有一個一一對應(yīng)的關(guān)系了。
在Linq To Sql之前,在Java領(lǐng)域有Hibernate,在NET領(lǐng)域有NHibernate技術(shù),來實現(xiàn)object/relational 持久和查詢服務(wù)。無論是Hibernate還是NHibernate,其配置復(fù)雜,上手時間長,已經(jīng)不能適應(yīng)快速開發(fā)的需要。而Linq To Sql的推出,恰恰彌補了它們的缺點,徹底降低了程序開發(fā)門檻。

Linq
Linq是Language Integrated Query的縮寫。Linq To Sql是linq中的一部分,其與ADO.NET Orcas的關(guān)系入下。

 

系列文章導(dǎo)航:

Linq To Sql進階系列(一)從映射講起

Linq To Sql進階系列(二)M:M關(guān)系

Linq To Sql進階系列(三)CUD和Log

Linq To Sql進階系列(四)User Define Function篇

Linq To Sql進階系列(五)Store Procedure篇

Linq To Sql進階系列(六)用object的動態(tài)查詢與保存log篇

Linq To Sql進階系列(七)動態(tài)查詢續(xù)及CLR與SQL在某些細節(jié)上的差別



關(guān)系型數(shù)據(jù)的映射
數(shù)據(jù)間的關(guān)系,有2種基本關(guān)系。1: 1 和1: M。查閱northwind數(shù)據(jù)庫中的關(guān)系圖。本文用Order 和Order Detail 表,來闡述其關(guān)系的映射。Order 為訂單,Order Detail 為訂單詳情。其關(guān)系形式為,一條Order記錄對應(yīng)多條Order Detail 記錄。
你可以在上面產(chǎn)生的code中,找到相應(yīng)的order類,其中有這么一段

 

    [Table(Name="Orders")]
    
public partial class Order : INotifyPropertyChanging, INotifyPropertyChanged
    
{
        [Association(Name
="Order_OrderDetail", Storage="_OrderDetails", OtherKey="OrderID")]
        
public EntitySet<OrderDetail> OrderDetails
        
{
            
get
            
{
                
return this._OrderDetails;
            }

            
set
            
{
                
this._OrderDetails.Assign(value);
            }

        }

        
}

it知識庫Linq To Sql進階系列(一)從映射講起,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 青田县| 兴城市| 大田县| 泰来县| 堆龙德庆县| 融水| 乡宁县| 明水县| 永定县| 梧州市| 彭州市| 柳江县| 德惠市| 隆安县| 宁晋县| 苍山县| 新巴尔虎右旗| 克山县| 孟津县| 乌鲁木齐市| 开封县| 临安市| 喀什市| 永安市| 蒙城县| 濮阳市| 乐平市| 西丰县| 洛隆县| 浪卡子县| 菏泽市| 宜春市| 澎湖县| 墨竹工卡县| 东乡县| 牟定县| 虹口区| 泰州市| 平邑县| 定远县| 额尔古纳市|