基本上我正在尝试找到一种不那么糟糕的方法来完成这个任务:
foreach (var k in someList)
{
try
{
var temp = Database.Set(k.GetType()).Local;
newList.Add(k);
}
catch (InvalidOperationException)
{
}
}
Database
是我模型的DbContext
实例。
someList
是一个对象集合,其中一些是实体模型的一部分,而其他则不是。我想创建一个新的列表(newList
),该列表仅包含模型的一部分对象。在someList
中的对象可以是任何类型(在我的情况下,其中之一是List<string>
,显然与我的底层数据库无关)。
当来自someList
的对象不是实体模型的一部分时,会引发InvalidOperationException
。通过这样做,我得到了我想要的结果,但它似乎是一种hack方法。我正在寻找更好的解决方案。
someList
和k
的类型是什么?someList
可以包含任何类型吗?而且方法Database.Set(k)
不存在。您是否意味着Database.Set(k.GetType())
?也许可以给出具体类型的示例。 - Gert ArnoldsomeList
。一个好的解决方案应该避免这种情况。 - H H