第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

AutoFixture - 添加自定義,以便使用對(duì)象 id 創(chuàng)建所有字典鍵

AutoFixture - 添加自定義,以便使用對(duì)象 id 創(chuàng)建所有字典鍵

C#
暮色呼如 2023-09-24 16:13:57
我不確定這是否可能,但我認(rèn)為值得一問(wèn)。我們有許多對(duì)象,這些對(duì)象具有其他子對(duì)象的層次結(jié)構(gòu)。我們不使用一系列 IEnumerable 集合,而是使用字典,這樣當(dāng)在 MongoDb 中查詢數(shù)據(jù)時(shí),可以輕松/快速地遍歷層次結(jié)構(gòu)。例如:在主模型中,我們有類(lèi)似的內(nèi)容:public Dictionary<string, TopLevelGroup> TopGroups { get; set; }然后在 TopLevelGroup 中我們有類(lèi)似的內(nèi)容:public Dictionary<string, SecondLevelGroup> SecondLevelGroups { get; set; }鍵必須是一個(gè)字符串,以便它可以作為 ReferencedDictionary 存儲(chǔ)在 Mongo 中(我認(rèn)為這是正確的),并且可以通過(guò)執(zhí)行以下操作來(lái)訪問(wèn)數(shù)據(jù):TopLevelGroup[keyA].SecondLevelGroup[keyB].Property所有鍵都是對(duì)象的 id 屬性(它們也有一個(gè)通用的 IDocument 接口,它要求所有文檔都有一個(gè) Id ...當(dāng)然)。所以我想要在 AutoFixture 中做的是讓所有自動(dòng)生成的字典都使用對(duì)象的 Id 作為鍵(而不是隨機(jī)生成的字符串)。我懷疑這有點(diǎn)瘋狂并且不受支持,但我想問(wèn)一下以防萬(wàn)一,因?yàn)槲夷壳安惶私?AutoFixture。
查看完整描述

1 回答

?
慕森王

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超3個(gè)贊

不,這一點(diǎn)也不瘋狂,而且是受支持的。

這種情況正是定制方法的用處。

使用該方法,您可以自定義對(duì)象的創(chuàng)建方式。

你也許可以這樣做:

fixture.Customize<TopLevelGroup>(
????c?=>?c.With(
????????propertyPicker:?x?=>?x.SecondLevelGroups,?
????????valueFactory:?(IEnumerable<SecondLevelGroup>?input)?=>?input.ToDictionary(y?=>?y.Id)));

fixture.Customize<MainModel>(
????c?=>?c.With(
????????propertyPicker:?x?=>?x.TopGroups,?
????????valueFactory:?(IEnumerable<TopLevelGroup>?input)?=>?input.ToDictionary(y?=>?y.Id)));

With方法用于指定屬性的值。第一個(gè)參數(shù)是 propertypicker,例如x => x.SecondLevelGroups

第二個(gè)參數(shù)是一個(gè)值或一個(gè) valuefactory。valuefactory 可以接受一個(gè)輸入,自動(dòng)固定裝置將填充該輸入。例如,IEnumerable<SecondLevelGroup>我們可以將其轉(zhuǎn)換為具有我們想要的鍵的字典。


查看完整回答
反對(duì) 回復(fù) 2023-09-24
  • 1 回答
  • 0 關(guān)注
  • 133 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)