将System.Data.Linq.Table <t>传递给泛型函数</t>

时间:2011-02-14 03:40:13

标签: c# generics

我正在尝试创建一个带有System.Data.Linq.Table<T>

的泛型函数

通用功能

 public int Get<T>(MyDataContext db, System.Data.Linq.Table<T> table, string PropertyValue) where T: IMatchable
 {
     T prop = table.FirstOrDefault<T>(p => p.Name.ToLower() == PropertyValue.ToLower());  
     if (prop != null)
     {
        return prop.ID;
     }
 }

接口,以便我可以访问ID属性

public interface IMatchable
{
    int ID { get; set; }
}

我的错误

  

类型'T'必须是引用类型   以便将其用作参数   'TEntity'在泛型或   方法   'System.Data.Linq.Table'

我不确定我做错了什么。

1 个答案:

答案 0 :(得分:6)

尝试指定where T: class, IMatchable

由于System.Data.Linq.Table有约束where TEntity : class,您需要确保T也是引用类型。