我有 2 個資料庫和以下模型
對于資料庫 1:
Public class StorageItem
{
public int Id { get; set; }
public string Name { get; set; }
}
對于資料庫 2:
public class Storage
{
public int Id { get; set; }
publict string name {get; set;}
public int StorageItemId{ get; set; }
}
我有方法
var storageitemList = context.StorageItem.ToList();
和
var storageList = context.Storage.ToList();
我想把對應的名字從storageitemList添加到StorageList。StorageList 將導致類似這樣的結果,并且每個 storagelist 物件仍然可以訪問。
| ID | 姓名 |
|---|---|
| 1 | 測驗 |
| 2 | 測驗2 |
| ID | 姓名 | 存盤項 ID | 存盤項名稱 |
|---|---|---|---|
| 1 | 測驗12 | 1 | 測驗 |
| 2 | 測驗4 | 2 | 測驗2 |
當前字串名稱存盤在資料庫中,但這將更改為 Id。但是名稱仍然需要像現在一樣顯示在 Razor/blazor 前端頁面中。我需要創建一個新的類來組合它們還是一個財產包?實作這一目標的最佳解決方案是什么?
我開始查看 PropertyBag 以實作以下目標: Status["name"]=storageitemlist.where(si=> si.id == storage.id); 但找不到模型的propertybag 解決方案。提前致謝
uj5u.com熱心網友回復:
你應該澄清你到底需要什么......我從帖子中了解到的是你需要像 linq 中的 Zip 操作
來自(簡而言之,C#)
郵編操作員
IEnumerable<TFirst>, IEnumerable<TSecond>→IEnumerable<TResult>
Zip 運算子是在 Framework 4.0 中添加的。它逐步列舉兩個序列(如拉鏈),回傳基于對每個元素對應用函式的序列。
For instance, the following:
int[] numbers = { 3, 5, 7 };
string[] words = { "three", "five", "seven", "ignored" };
IEnumerable<string> zip = numbers.Zip (words, (n, w) => n "=" w);
生成具有以下元素的序列:
3=three
5=five
7=seven
忽略任一輸入序列中的額外元素。EF Core 不支持 Zip。
uj5u.com熱心網友回復:
var query = (from storage in storageList
join storageitem in storageitemList on storage.StorageItemId equals storageitem.Id
select (storage: storage, storageitem: storageitem)).ToList();
并List<(Storage storage, StorageItem storageitem)>在您看來有模型
您還可以為模型創建一個新的 dto 類
最好避免使用視圖袋
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/314654.html
上一篇:C#比較兩個陣列并對匹配執行操作
下一篇:排除已經簽到的學生的學生ID
