다양한 데이터베이스 테이블에는 속성과 값 열이 있습니다. Linq를 사용하여 데이터베이스에 액세스합니다.왜 C# 제네릭 메서드에서 "오류 : ... 참조 형식이어야합니다"가 표시됩니까?
나는 주어진 데이터베이스 테이블에서 검색 속성/값이 포함 된 사전을 반환하는 방법을 쓰고 있어요 : 컴파일시
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;
}
를, 내가 얻을 : 내가 해봤
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>'
운이없이이 오류 메시지를 검색합니다.
StackOverflow를 검색하면 매개 변수 List : Generic List<T> as parameter on method과 관련하여이 질문은 유사하지만이 매개 변수는 여전히 해당 질문에 대한 응답의 참조 형식이 아닙니다.
MSDN의 C# 프로그래밍 가이드 읽기 : http://msdn.microsoft.com/en-us/library/twcad0zb(VS.80).aspx 예제는 모두 참조로 매개 변수를 전달합니다. 그러나 제네릭 형식은 단지 제네릭 형식의 테이블을 지정하기위한 것이므로 내 특정 사례에서 참조로 전달하는 방법을 볼 수 없습니다.
모든 포인터가 많이 감사하겠습니다.
추신 : 답변을 수락하는 데 시간이 걸리면이 기능에 현재 액세스 할 수 없기 때문에 사과드립니다 (나는 눈이 멀고 스크린 리더를 사용합니다).
어느 라인에 대한 해당 오류 메시지가 무엇입니까? – sblom
@Mahesh : 그의 직책의 마지막 줄을 읽었습니까? @Saqib : 그것에 대해 StackOverflow 사람들에게 메모를 보내고 싶을 수도 있습니다. 사이트의 중요한 기능이 손상되어 방문자의 상당 부분이 작동하지 않는다는 사실을 알고 싶어합니다. –
미안하지만, 나하지 않았다. 지적 해 주셔서 고마워요. 사과 –