Sar*_*pps 4 .net c# nhibernate syntax .net-3.5
public static IList<T> LoadObjectListAll<T>()
{
ISession session = CheckForExistingSession();
var cfg = new NHibernate.Cfg.Configuration().Configure();
var returnList = session.CreateCriteria(typeof(T));
var list = returnList.List();
var castList = list.Cast<typeof(T)>();
return castList;
}
Run Code Online (Sandbox Code Playgroud)
所以,我得到一个构建错误,我将"list"元素转换为通用IList ....有人能看到一个明显的错误吗?
T不是类型也不是System.Type. T是一个类型参数. typeof(T)返回类型T.该typeof运营商不采取行动的对象上,它返回Type一个类型的对象.http://msdn.microsoft.com/en-us/library/58918ffs.aspx
@John回答你的直接问题是正确的.但是NHibernate的代码有点偏差.例如,你不应该ISessionFactory 在获得之后进行配置ISession.
public static T[] LoadObjectListAll()
{
var session = GetNewSession();
var criteria = session.CreateCriteria(typeof(T));
var results = criteria.List<T>();
return results.ToArray();
}
Run Code Online (Sandbox Code Playgroud)
我认为
var castList = list.Cast<typeof(T)>();
Run Code Online (Sandbox Code Playgroud)
应该
var castList = list.Cast<T>();
Run Code Online (Sandbox Code Playgroud)
@Jon Limjap我能看到的最明显的错误
IList是a绝对不同于IList<T>.AIList是非通用的(例如ArrayList).
最初的问题已经在使用了IList<T>.有人编辑格式时删除了它.可能是Markdown的一个问题.
现在修复了.