有时似乎很难弄清楚最简单的事情...... 许多代码引用具有TEntity类型,用于实体数据模型中实体的通用处理。我试图在我的代码中使用它并获得:“未知类型'TEntity'”是什么给出了???为什么我会收到“未知类型”?这只适用于.net 4.0吗?
BTW:使用.net 3.5。
我正在尝试使用this book中的代码:
public TEntity ExecuteFirstorDefault<TEntity>(ObjectQuery<TEntity> objectQuery)
{
try
{
return objectQuery.FirstOrDefault();
}
catch (EntitySqlException ex)
{
throw ex; //TODO: Replace with handling code
//additional exceptions as described in Chapter 18
}
}
答案 0 :(得分:8)
TEntity
是generic type parameter,不是具体类型。
我想我的问题是为什么我不能使用它,为什么我会得到Unknown类型。
因为不是具体类型。
假设您有一个通用列表实现,声明为List<T>
。 T
是类型参数,这意味着它不代表特定类型。作为程序员,您必须通过提供类型参数来指示编译器使用特定类型而不是泛型类型T
。您可以创建一个整数列表,如这样:
List<int> myInts = new List<int>();
在此示例中,类型参数为int
。接受或返回List
的{{1}}的所有通用方法(或属性)将改为使用T
。