protected void saveform<T>(System.Data.Linq.Table<T> table, bool submit)
where T : class
{
try
{
using (DataContext dc = new DataContext())
{
var form = (from f in table
join r in dc.tbRecords on f.recordId equals r.recordId
where r.pID == pId
select new {f, r}).SingleOrDefault();
...
但是我在编译时遇到了这个错误信息:
&#39; T&#39;不包含&#39; recordId&#39;的定义没有延伸 方法&#39; recordId&#39;接受第一个类型&#39; T&#39;可能 发现(您是否缺少using指令或程序集引用?)
我该如何处理? 感谢。
答案 0 :(得分:2)
你怎么知道T有'recordId'属性?它仅限于成为一个对象......
一种可能的解决方案是将您的实体包装在一个界面中:
public interface IRecord
{
public int recordId { get; }
}
您可以使用部分类来使您的实体实现此接口。
然后,将方法的泛型类型约束到该接口,例如
protected void saveform<T>(System.Data.Linq.Table<T> table, bool submit) where T : IRecord