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

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

如何處理動(dòng)態(tài)表名

如何處理動(dòng)態(tài)表名

C#
斯蒂芬大帝 2022-12-24 13:46:19
我有許多表需要使用 Linq 組合成一個(gè)結(jié)構(gòu)我需要處理許多具有相同結(jié)構(gòu)但表名不同的表(跨越 20 年的財(cái)務(wù)數(shù)據(jù))。我可以創(chuàng)建代碼來(lái)動(dòng)態(tài)訪問(wèn)各種表內(nèi)容:string tableName = "Trading.DataSources.Prices2017"; var results = DbContext.Set(Type.GetType(tableName));但是,當(dāng)我嘗試使用 Cast 將一個(gè)表中的結(jié)果轉(zhuǎn)換為公用表(具有相同表結(jié)構(gòu)的價(jià)格)時(shí):var newResults = results.AsQueryable().Cast<Price>().ToList();我收到以下錯(cuò)誤:“System.NotSupportedException:‘無(wú)法將類型‘Trading.DataSources.Prices2017’轉(zhuǎn)換為類型‘Trading.DataSources.Price’。LINQ to Entities 僅支持轉(zhuǎn)換 EDM 原語(yǔ)或枚舉類型?!蔽绎@然可以用我自己的轉(zhuǎn)換方法進(jìn)行這種轉(zhuǎn)換。然而,這會(huì)導(dǎo)致同一代碼塊的多個(gè)版本以滿足不同的表,并且每年,當(dāng)我有一組新的價(jià)格數(shù)據(jù)時(shí),我必須修改我的代碼以適應(yīng)新的一年的表名。有沒(méi)有辦法動(dòng)態(tài)地(或一般地)處理這個(gè)問(wèn)題?
查看完整描述

1 回答

?
神不在的星期二

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

制作一個(gè)新的模型類SharedPrices。此類將包含這些表具有的所有相同值


var newResults = results.select(r => new SharedPrices{value1 = r.value1, value2 = r.value2}).ToList();

對(duì)于我的例子,所有價(jià)格表只有:


價(jià)值1

值2

這些應(yīng)該代替您的實(shí)際類結(jié)構(gòu)。


我為你做了更多的挖掘,我想感謝@Tyler-Long在這里的回答。他的回答基本上指出,只要它們具有完全相同的屬性,您就可以使用 JSON(反)序列化將一個(gè)類反映到另一個(gè)類中,而無(wú)需編寫(xiě)強(qiáng)制轉(zhuǎn)換,如下所示:


using Newtonsoft.Json;


string tableName = "Trading.DataSources.Prices2017";

var tableType = Type.GetType(tableName);

var results = DbContext.Set(tableType);

Price newResults = JsonConvert.DeserializeObject<tableType>(JsonConvert.SerializeObject(results.ToList()));

我認(rèn)為這將為您提供將表格轉(zhuǎn)換為單一價(jià)格模型的能力,而無(wú)需顯式編寫(xiě)轉(zhuǎn)換邏輯。唯一的缺點(diǎn)是它為您的項(xiàng)目添加了對(duì) Newtonsoft.json 包的依賴(可以通過(guò) nuget 下拉)。雖然我以前親自使用過(guò)這個(gè)包,但它是可靠的。


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

添加回答

舉報(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)