日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Entity FrameWork 365日系列文章源码研究 (1)

發布時間:2025/5/22 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Entity FrameWork 365日系列文章源码研究 (1) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  By KMSFan -- ?此系列的文章只作為自己的讀書筆記,不納入博客園首頁。

?

  總結的知識點:

  1.DBContext 類

  2.Attribute里的屬性(NotNull)

  3.DbContext實現的2個接口:1.IDisposeable 2.IDbContextService

?

  namespace Microsoft.Data.Entity.Commands

我們先來看看這個命名空間下的東西,有一個contextTool方法

里面有一個CreateContext方法。

?

由于我自己對DbContext比較的感興趣,于是忍不住按了下F12,于是看到了以下的結構:

其中DbContext實現了2個接口,一個是IDisposable,另一個是IDbContextServices,我想,既然實現了這2個接口,那么肯定實現了這2個接口里的方法吧?!

心動不如行動,趕緊看看里面有什么東西。

IDisposable:

namespace System {//// 摘要:// 定義一種釋放分配的資源的方法。public interface IDisposable{//// 摘要:// 執行與釋放或重置非托管資源相關的應用程序定義的任務。void Dispose();} }

 IDbContextService

using System;namespace Microsoft.Data.Entity.Infrastructure {public interface IDbContextServices{IServiceProvider ScopedServiceProvider { get; }} }

  由于我用的是VS2015,嘿嘿,新功能,告訴大家一個小秘密,可以看哪些地方引用到了這個接口哦。

  由此可以看出這個接口的重要性了吧?!其實在EF里面有很多這樣的東西,這也許正是EF強大的地方吧。讓我們再回到CreateContext這個方法吧,其中有一個叫做Attribute的東西,我這里的是NOT NULL,就是不為空。

  

  也就是說,傳入的參數是不為空的(形參)。我們來看看這個NOT NULL究竟是何方神圣?!

internal sealed class NotNullAttribute : Attribute{}

  看到了吧?其實是一個封閉的內部類,里面什么都沒有。網上我沒找到答案,最終,萬能的谷歌有了解答,嘿嘿。我就不翻譯了,以后再來翻譯。

http://stackoverflow.com/questions/4619185/what-is-an-internal-sealed-class-in-c

好了,今天就到這里,明天繼續總結。

?

轉載于:https://www.cnblogs.com/kmsfan/p/4181246.html

總結

以上是生活随笔為你收集整理的Entity FrameWork 365日系列文章源码研究 (1)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。