Dlaczego otrzymuję „błąd:… musi być typem odniesienia” w mojej ogólnej metodzie C #?

W różnych tabelach bazy danych mam zarówno kolumnę właściwości, jak i kolumnę wartości. Używam Linq do SQL, aby uzyskać dostęp do bazy danych.

Piszę metodę, która zwraca słownik zawierający właściwości / wartości pobrane z danej tabeli bazy danych:

private static Dictionary<string, string> GetProperties<T>(Table<T> table)
{
    Dictionary<string, string> properties = new Dictionary<string, string>();

    foreach (var row in table)
    {
        properties[row.Property]=row.Value;
    }

    return properties;
}

Po kompilacji otrzymuję:

Error 1 The type 'T' must be a reference type in order to use it as parameter 'TEntity' in the generic type or method 'System.Data.Linq.Table<TEntity>'

Próbowałem wyszukać ten komunikat o błędzie bez szczęścia.

Wyszukiwanie w StackOverflow to pytanie wydaje się podobne, chociaż w odniesieniu do listy parametrów:Lista rodzajowa <T> jako parametr metody - chociaż parametr nadal nie jest typem odniesienia w odpowiedziach na to pytanie.

Czytanie przewodnika programowania C # w MSDN:http://msdn.microsoft.com/en-us/library/twcad0zb(VS.80).aspx Widzę ich przykłady wszystkie przekazują parametry przez odniesienie. Jednak w moim szczególnym przypadku nie widzę, jak przekazywać referencje, ponieważ typ ogólny służy tylko do określania ogólnego typu tabeli.

Wszelkie wskazówki byłyby bardzo mile widziane.

PS: Appologies, jeśli zaakceptowanie odpowiedzi wymaga czasu, ponieważ ta funkcja jest obecnie niedostępna (jestem ślepy i korzystam z czytnika ekranu).

questionAnswers(3)

yourAnswerToTheQuestion