C# 错误:值为;System.Object[]”的缩写;不是“类型”;prjCustomerService.clsCustomer“;并且不能在此常规集合中使用。参数名称:value 公共IList存储过程(int CID) { IList LobjeEmployees=新列表(); NHibernate.Cfg.Configuration lObjConfig=新的NHibernate.Cfg.Configuration(); lObjConfig.AddAssembly(“prjCustomerService”); NHibernate.ISessionFactory lObjFactory=lObjConfig.BuildSessionFactory(); NHibernate.ISession lObjSession=lObjFactory.OpenSession(); NHibernate.IQuery lObjQuery=lObjSession.GetNamedQuery(“Test1”); SetInt32(“CID”、@CID); IList lObjEmpList=lObjQuery.List(); foreach(lObjEmpList中的clsCustomer lObjCurrEmployee) { CustomerData lObjCurrEmpData=新CustomerData(); lObjCurrEmpData.CID=lobjcurrememployee.CID; lObjCurrEmpData.CName=lobjcurrememployee.CName; lObjCurrEmpData.Cadd=lobjcurrememployee.Cadd; lObjCurrEmpData.Ccontact=lobjcurrememployee.Ccontact; 添加(lObjCurrEmpData); } 返乡职工; }
这是我的WCF服务代码。我在第行收到一个错误:C# 错误:值为;System.Object[]”的缩写;不是“类型”;prjCustomerService.clsCustomer“;并且不能在此常规集合中使用。参数名称:value 公共IList存储过程(int CID) { IList LobjeEmployees=新列表(); NHibernate.Cfg.Configuration lObjConfig=新的NHibernate.Cfg.Configuration(); lObjConfig.AddAssembly(“prjCustomerService”); NHibernate.ISessionFactory lObjFactory=lObjConfig.BuildSessionFactory(); NHibernate.ISession lObjSession=lObjFactory.OpenSession(); NHibernate.IQuery lObjQuery=lObjSession.GetNamedQuery(“Test1”); SetInt32(“CID”、@CID); IList lObjEmpList=lObjQuery.List(); foreach(lObjEmpList中的clsCustomer lObjCurrEmployee) { CustomerData lObjCurrEmpData=新CustomerData(); lObjCurrEmpData.CID=lobjcurrememployee.CID; lObjCurrEmpData.CName=lobjcurrememployee.CName; lObjCurrEmpData.Cadd=lobjcurrememployee.Cadd; lObjCurrEmpData.Ccontact=lobjcurrememployee.Ccontact; 添加(lObjCurrEmpData); } 返乡职工; },c#,sql,wcf,C#,Sql,Wcf,这是我的WCF服务代码。我在第行收到一个错误: IList lObjEmpList=lObjQuery.List() 值“System.Object[]”不是“prjCustomerService.clsCustomer”类型,不能在此泛型集合中使用 参数名称:value Test1是我的存储过程,它返回一行,其中CID=“xyz”尝试: public IList<CustomerData> StoredProcedure(int CID) { IList&l
IList lObjEmpList=lObjQuery.List()代码>
值“System.Object[]”不是“prjCustomerService.clsCustomer”类型,不能在此泛型集合中使用
参数名称:value
Test1
是我的存储过程,它返回一行,其中CID=“xyz”
尝试:
public IList<CustomerData> StoredProcedure(int CID)
{
IList<CustomerData> lObjEmployees = new List<CustomerData>();
NHibernate.Cfg.Configuration lObjConfig = new NHibernate.Cfg.Configuration();
lObjConfig.AddAssembly("prjCustomerService");
NHibernate.ISessionFactory lObjFactory = lObjConfig.BuildSessionFactory();
NHibernate.ISession lObjSession = lObjFactory.OpenSession();
NHibernate.IQuery lObjQuery = lObjSession.GetNamedQuery("Test1");
lObjQuery.SetInt32("CID", @CID);
IList<clsCustomer> lObjEmpList = lObjQuery.List<clsCustomer>();
foreach (clsCustomer lObjCurrEmployee in lObjEmpList)
{
CustomerData lObjCurrEmpData = new CustomerData();
lObjCurrEmpData.CID = lObjCurrEmployee.CID;
lObjCurrEmpData.CName = lObjCurrEmployee.CName;
lObjCurrEmpData.Cadd = lObjCurrEmployee.CAdd;
lObjCurrEmpData.Ccontact = lObjCurrEmployee.CContact;
lObjEmployees.Add(lObjCurrEmpData);
}
return lObjEmployees;
}
IList-lObjEmpList=lObjQuery.OfType.ToList();
记住在using语句中添加using System.Linq
通过这句话,您可以说您的非泛型iquire必须经过筛选,只包含clsCustomer
对象,然后使用。ToList您可以说您想从中创建一个列表。在我的例子中,我在查询
中用来选择的别名与我实际使用的不同“选择为”:
查询(注意带别名的):
因为,在运行查询时,我没有传递结果应转换为的类类型,它会尝试将结果转换为类型DomainModel.Models.Bug
,而不是IndividualBugViewModel
。这导致了错误
所以我把它改成:
var bugList = bugQueryOver.List() //Error!
var bugList=bugQueryOver.TransformUsing(Transformers.AliasToBean())
.List();
在您的情况下,命名查询中的
必须与clsCustomer
不兼容
IndividualBugViewModel individualBugViewModelAlias = null;
IQueryOver<DomainModel.Models.Bug, DomainModel.Models.Bug> bugQueryOver = Repository
.QueryOver(() => bugAlias)
.SelectList(list => list.SelectGroup(() => bugAlias.Details).WithAlias(
() => individualBugViewModelAlias.Details)
var bugList = bugQueryOver.List() //Error!
var bugList = bugQueryOver.TransformUsing(Transformers.AliasToBean<IndividualBugViewModel>())
.List<IndividualBugViewModel>();