簡體   English   中英

如何在運行時從通用EntitySet中獲取實體而又不知道通用類型?

[英]How to get the entities from generic EntitySet on run-time without knowing the generic type?

我正在創建一個映射器函數,該函數將在運行時使用具有未知不同通用類型的EntitySet<> ,我想在傳入的EntitySet獲取實體並將其添加到列表中。

我無法訪問實體,因為我將EntitySet作為對象來了,並且當我嘗試將對象轉換為各自的類型時,我失敗了,因為我不知道EntitySet的通用類型

((EntitySet<XXXX>)dataValues[pInfo.Name]).ToList();

我可以讀取通用EntitySet的數據類型,但無法使用它進行演員表轉換,我不知道如何或什至不可以!

dataValues[pInfo.Name].GetType().GenericTypeArguments.First()

我不太在乎泛型類型,因為我只需要將集合放入EntitySet

我知道我的問題看起來很重復,但是老實說,我搜索時發現的結果無法解決我的問題。

我正在使用C#ASP.net

EntySet繼承自System.Collections.Generic.ICollection,System ICollection繼承自System.Collections.Generic.IEnumerable,而IEnumerable繼承自System.Collections.IEnumerable。

System.Collections.IEnumerable不是通用接口。 您可以在ineach中使用。

所以你的功能是這樣的:

public class Example
{
     public static void EnumEntities( IEnumerable entities )
     {
        foreach( var entity in entities )
        {
            Console.WriteLn( entity.ToString());
        }
     }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM