最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Entity Framework主從表數(shù)據(jù)加載方式

 更新時間:2022年06月13日 14:38:13   作者:springsnow  
這篇文章介紹了Entity Framework主從表數(shù)據(jù)加載方式,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

一、延遲加載:LazyLoading

使用延遲加載,關(guān)聯(lián)的實(shí)體必須標(biāo)注為virtual。

本例是標(biāo)注Destination類里的Lodgings為virtual。因為先發(fā)sql去查詢主鍵對象,然后根據(jù)主鍵id去從表里查相關(guān)聯(lián)的數(shù)據(jù)。

    private static void TestLazyLoading()
    {
        using (var context = new CodeFirst.DataAccess.BreakAwayContext())
        {
           var canyon = (from d in context.Destinations where d.Name == "Grand Canyon" select d).Single();

           var distanceQuery = from l in canyon.Lodgings   //延遲加載canyon的所有.Lodgings
                                where l.Name == "HuangShan Hotel"
                                select l;
            foreach (var lodging in distanceQuery)
                Console.WriteLine(lodging.Name);
        }
    }

改進(jìn):在數(shù)據(jù)庫中操作,顯示加載

    private static void QueryLodgingDistancePro()
    {
        using (var context = new CodeFirst.DataAccess.BreakAwayContext())
        {
            var canyon = (from d in context.Destinations where d.Name == "Grand Canyon" select d).Single();
            var lodgingQuery = context.Entry(canyon).Collection(d => d.Lodgings).Query();//接下來的查詢在數(shù)據(jù)庫中,包括Count()等
            var distanceQuery = from l in lodgingQuery 
                                 where l.Name == "HuangShan Hotel" 
                                 select l;

            foreach (var lodging in distanceQuery)
                Console.WriteLine(lodging.Name);
        }
    }

二、貪婪加載:EagerLoading

    private static void TestEagerLoading()
    {
        using (var context = new CodeFirst.DataAccess.BreakAwayContext())
        {
            // var allDestinations = context.Destinations.Include(d => d.Lodgings);
            var AustraliaDestination = context.Destinations.Include(d => d.Lodgings).Where(d => d.Name == "Bali");
            //context.Lodgings.Include(l => l.PrimaryContact.Photo);
            //context.Destinations.Include(d => d.Lodgings.Select(l => l.PrimaryContact));
            //context.Lodgings.Include(l => l.PrimaryContact).Include(l => l.SecondaryContact);
            foreach (var destination in AustraliaDestination)
            {
                foreach (var lodging in destination.Lodgings)
                    Console.WriteLine(" - " + lodging.Name);
            }
        }
    }

三、顯示加載:ExplicitLoading

1、查找導(dǎo)航屬性為一個集合的

    private static void LoadRelateData()
    {
        using (var context = new CodeFirst.DataAccess.BreakAwayContext())
        {
           var canyon = (from d in context.Destinations where d.Name == "Grand Canyon" select d).Single();

           context.Entry(canyon).Collection(d => d.Lodgings).Load();  //顯示加載

           foreach (var lodging in context.Lodgings.Local)
                Console.WriteLine(lodging.Name);
        }
    }

2、查找導(dǎo)航屬性為一個實(shí)體對象的

    private static void LoadPrimaryKeyData()
    {
        using (var context = new CodeFirst.DataAccess.BreakAwayContext())
        {
            var lodging = context.Lodgings.First();

            context.Entry(lodging).Reference(l => l.Destination).Load();

           foreach (var destination in context.Destinations.Local)   //遍歷的是內(nèi)存中的Destinations數(shù)據(jù)
                Console.WriteLine(destination.Name);
        }
    }

到此這篇關(guān)于Entity Framework主從表數(shù)據(jù)加載方式的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C#實(shí)現(xiàn)偽裝文件夾功能

    C#實(shí)現(xiàn)偽裝文件夾功能

    這篇文章主要為大家詳細(xì)介紹了如何利用C#實(shí)現(xiàn)偽裝文件夾的功能,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)C#有一定的幫助,感興趣的小伙伴可以跟隨小編一起了解一下
    2022-12-12
  • C#如何連接數(shù)據(jù)庫

    C#如何連接數(shù)據(jù)庫

    這篇文章主要介紹了C#如何連接數(shù)據(jù)庫問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • C#實(shí)現(xiàn)簡單的計算器功能完整實(shí)例

    C#實(shí)現(xiàn)簡單的計算器功能完整實(shí)例

    這篇文章主要介紹了C#實(shí)現(xiàn)簡單的計算器功能,結(jié)合完整實(shí)例形式分析了C#實(shí)現(xiàn)常見的數(shù)學(xué)運(yùn)算、進(jìn)制轉(zhuǎn)換等相關(guān)操作技巧與界面布局方法,需要的朋友可以參考下
    2017-08-08
  • C#校驗時間格式的場景分析

    C#校驗時間格式的場景分析

    本文通過場景分析給大家講解C#里如何簡單的校驗時間格式,本次的場景屬于比較常見的收單API,對第三方的訂單進(jìn)行簽名驗證,然后持久化到數(shù)據(jù)庫,需要的朋友跟隨小編一起看看吧
    2022-08-08
  • C#調(diào)用Java類的實(shí)現(xiàn)方法

    C#調(diào)用Java類的實(shí)現(xiàn)方法

    以下是對使用C#調(diào)用Java類的實(shí)現(xiàn)方法進(jìn)行了詳細(xì)的介紹,需要的朋友可以過來參考下
    2013-09-09
  • C#中使用Microsoft Unity記錄日志

    C#中使用Microsoft Unity記錄日志

    這篇文章介紹了C#中使用Microsoft Unity記錄日志的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-08-08
  • C#中static void Main(string[] args) 參數(shù)示例詳解

    C#中static void Main(string[] args) 參數(shù)示例詳解

    這篇文章主要介紹了C#中static void Main(string[] args) 參數(shù)詳解,本文通過具體示例給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2017-03-03
  • C#?Unity使用正則表達(dá)式去除部分富文本的代碼示例

    C#?Unity使用正則表達(dá)式去除部分富文本的代碼示例

    正則表達(dá)式在我們?nèi)粘i_發(fā)中的用處不用多說了吧,下面這篇文章主要給大家介紹了關(guān)于C#?Unity使用正則表達(dá)式去除部分富文本的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-03-03
  • C#/VB.NET實(shí)現(xiàn)在Word中插入或刪除腳注

    C#/VB.NET實(shí)現(xiàn)在Word中插入或刪除腳注

    腳注,是可以附在文章頁面的最底端的,對某些東西加以說明,印在書頁下端的注文。這篇文章將為您展示如何通過C#/VB.NET代碼,以編程方式在Word中插入或刪除腳注,需要的可以參考一下
    2023-03-03
  • c#連接mysql數(shù)據(jù)庫的方法

    c#連接mysql數(shù)據(jù)庫的方法

    這篇文章主要介紹了c#連接mysql數(shù)據(jù)庫的方法,需要的朋友可以參考下
    2014-04-04

最新評論

壶关县| 日土县| 蕲春县| 望谟县| 宁南县| 麻城市| 许昌市| 化德县| 甘谷县| 精河县| 咸丰县| 辽中县| 沐川县| 泰来县| 斗六市| 信阳市| 报价| 兴业县| 太和县| 张掖市| 宜黄县| 丽水市| 清镇市| 赣榆县| 开远市| 林甸县| 华宁县| 孝义市| 马尔康县| 南通市| 冷水江市| 普洱| 辉县市| 泸州市| 靖州| 集安市| 德州市| 横山县| 宝清县| 民权县| 常德市|