我有以下方法被不同的类型调用,我只知道运行时的类型,这里是代码片段(数据是我的DataContext):
public void UpdateOrInsert<T>(ISet<T> values)
{
Console.WriteLine("Total: \t\t" + values.Count + " " + typeof(T).Name + "s");
DbSet<T> existingValues = Data.Set<T>();
foreach (T value in existingValues)
{
values.Remove(value);
}
Console.WriteLine("Not in DB: \t" + values.Count + " " + typeof(T).Name + "s");
问题是我不知道我应该在这一行中使用哪种泛型类型:
DbSet<T> existingValues = Data.Set<T>();
Visual Studio说:
T必须是参考类型。
如何解决此错误?