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的一个问题.
现在修复了.