我想为一些临时测试/控制台应用编写一个小而琐碎的扩展方法,但我一直无法弄清楚如何正确获取方法签名。我希望将它添加到所有的 System.Data.Linq.Table 中,并将类型T的实例作为参数传递。
这是我目前的代码,但无法通过编译:
public static void InsertAndSubmit<T>(this System.Data.Linq.Table<T> tbl, T element)
{
tbl.InsertOnSubmit(element);
tbl.Context.SubmitChanges();
}
类型“T”必须是引用类型,才能将其用作泛型类型或方法“System.Data.Linq.Table”的参数“TEntity”。
T
是无约束的,因此与在TEntity
上指定的约束不兼容。因此,你必须约束你的类型,以使编译器确信你的类型与TEntity
确实兼容。 - Joshua RodgersLinq.Table
的定义,这让我快要疯了。我从未意识到约束条件会延续到扩展方法中。非常感谢!等系统允许时我会接受的。 - Allen Rice