我有一个通用的匿名类,如下所示:
public class wfassignmentList : List<wfassignment>
{
public wfassignmentList(DataConnectDataContext db)
{
var query =
from a in db.wfassignments
group a by new
{
a.hasld
} into g
select new
{
NSRPBO =
(from wfassignments in db.wfassignments
where
wfassignments.ownertable == "PR" &&
wfassignments.roleid == "NSRPBO" &&
wfassignments.assignstatus == "ACTIVE"
select new
{
wfassignments.roleid
}).Count(p => p.roleid != null),
NSRPSV2 =
(from wfassignments in db.wfassignments
where
wfassignments.ownertable == "PR" &&
wfassignments.roleid == "NSRPSV2" &&
wfassignments.assignstatus == "ACTIVE"
select new
{
wfassignments.roleid
}).Count(p => p.roleid != null),
ORIGINATOR =
(from wfassignments in db.wfassignments
where
wfassignments.ownertable == "PR" &&
wfassignments.roleid == "ORIGINATOR" &&
wfassignments.assignstatus == "ACTIVE"
select new
{
wfassignments.roleid
}).Count(p => p.roleid != null),
NSRPSV1 =
(from wfassignments in db.wfassignments
where
wfassignments.ownertable == "PR" &&
wfassignments.roleid == "NSRPSV1" &&
wfassignments.assignstatus == "ACTIVE"
select new
{
wfassignments.roleid
}).Count(p => p.roleid != null),
NSRPSV3 =
(from wfassignments in db.wfassignments
where
wfassignments.ownertable == "PR" &&
wfassignments.roleid == "NSRPSV3" &&
wfassignments.assignstatus == "ACTIVE"
select new
{
wfassignments.roleid
}).Count(p => p.roleid != null),
NSRPSV =
(from wfassignments in db.wfassignments
where
wfassignments.ownertable == "PR" &&
wfassignments.roleid == "NSRPSV" &&
wfassignments.assignstatus == "ACTIVE"
select new
{
wfassignments.roleid
}).Count(p => p.roleid != null),
NSRPFM =
(from wfassignments in db.wfassignments
where
wfassignments.ownertable == "PR" &&
wfassignments.roleid == "NSRPFM" &&
wfassignments.assignstatus == "ACTIVE"
select new
{
wfassignments.roleid
}).Count(p => p.roleid != null),
NSRPME =
(from wfassignments in db.wfassignments
where
wfassignments.ownertable == "PR" &&
wfassignments.roleid == "NSRPME" &&
wfassignments.assignstatus == "ACTIVE"
select new
{
wfassignments.roleid
}).Count(p => p.roleid != null),
NSRPMM =
(from wfassignments in db.wfassignments
where
wfassignments.ownertable == "PR" &&
wfassignments.roleid == "NSRPMM" &&
wfassignments.assignstatus == "ACTIVE"
select new
{
wfassignments.roleid
}).Count(p => p.roleid != null),
NSRPPM =
(from wfassignments in db.wfassignments
where
wfassignments.ownertable == "PR" &&
wfassignments.roleid == "NSRPPM" &&
wfassignments.assignstatus == "ACTIVE"
select new
{
wfassignments.roleid
}).Count(p => p.roleid != null)
};
foreach (var r in query)
{
Add(new wfassignment(
r.NSRPBO, r.NSRPSV2, r.ORIGINATOR, r.NSRPSV1, r.NSRPSV3,
r.NSRPSV, r.NSRPFM, r.NSRPME, r.NSRPMM, r.NSRPPM));
}
}
}
我试图像这样的Web服务那样获取数据,但无法正常工作。
[WebMethod]
public List<wfassignment> getList()
{
DataConnectDataContext db = new DataConnectDataContext();
var query = (from a in db.wfassignments
group a by new
{
a.hasld
} into g
select new
{
NSRPBO =
(from wfassignments in db.wfassignments
where
wfassignments.ownertable == "PR" &&
wfassignments.roleid == "NSRPBO" &&
wfassignments.assignstatus == "ACTIVE"
select new
{
wfassignments.roleid
}).Count(p => p.roleid != null),
NSRPSV2 =
(from wfassignments in db.wfassignments
where
wfassignments.ownertable == "PR" &&
wfassignments.roleid == "NSRPSV2" &&
wfassignments.assignstatus == "ACTIVE"
select new
{
wfassignments.roleid
}).Count(p => p.roleid != null),
ORIGINATOR =
(from wfassignments in db.wfassignments
where
wfassignments.ownertable == "PR" &&
wfassignments.roleid == "ORIGINATOR" &&
wfassignments.assignstatus == "ACTIVE"
select new
{
wfassignments.roleid
}).Count(p => p.roleid != null),
NSRPSV1 =
(from wfassignments in db.wfassignments
where
wfassignments.ownertable == "PR" &&
wfassignments.roleid == "NSRPSV1" &&
wfassignments.assignstatus == "ACTIVE"
select new
{
wfassignments.roleid
}).Count(p => p.roleid != null),
NSRPSV3 =
(from wfassignments in db.wfassignments
where
wfassignments.ownertable == "PR" &&
wfassignments.roleid == "NSRPSV3" &&
wfassignments.assignstatus == "ACTIVE"
select new
{
wfassignments.roleid
}).Count(p => p.roleid != null),
NSRPSV =
(from wfassignments in db.wfassignments
where
wfassignments.ownertable == "PR" &&
wfassignments.roleid == "NSRPSV" &&
wfassignments.assignstatus == "ACTIVE"
select new
{
wfassignments.roleid
}).Count(p => p.roleid != null),
NSRPFM =
(from wfassignments in db.wfassignments
where
wfassignments.ownertable == "PR" &&
wfassignments.roleid == "NSRPFM" &&
wfassignments.assignstatus == "ACTIVE"
select new
{
wfassignments.roleid
}).Count(p => p.roleid != null),
NSRPME =
(from wfassignments in db.wfassignments
where
wfassignments.ownertable == "PR" &&
wfassignments.roleid == "NSRPME" &&
wfassignments.assignstatus == "ACTIVE"
select new
{
wfassignments.roleid
}).Count(p => p.roleid != null),
NSRPMM =
(from wfassignments in db.wfassignments
where
wfassignments.ownertable == "PR" &&
wfassignments.roleid == "NSRPMM" &&
wfassignments.assignstatus == "ACTIVE"
select new
{
wfassignments.roleid
}).Count(p => p.roleid != null),
NSRPPM =
(from wfassignments in db.wfassignments
where
wfassignments.ownertable == "PR" &&
wfassignments.roleid == "NSRPPM" &&
wfassignments.assignstatus == "ACTIVE"
select new
{
wfassignments.roleid
}).Count(p => p.roleid != null)
});
List<wfassignment> listdata = new List<wfassignment>();
foreach (var r in query)
listdata.Add(new wfassignment(
r.NSRPBO, r.NSRPSV2, r.ORIGINATOR, r.NSRPSV1, r.NSRPSV3,
r.NSRPSV, r.NSRPFM, r.NSRPME, r.NSRPMM, r.NSRPPM));
return listdata;
}
xml文件返回没有我期望的任何字段,我不知道哪里不正确。
这是wfassignment类:
public partial class wfassignment
{
private long _assignid;
private string _description;
private string _assigncode;
private System.Nullable<System.DateTime> _startdate;
private System.Nullable<System.DateTime> _duedate;
private short _emailnotification;
private string _assignstatus;
private long _wfid;
private string _ownertable;
private System.Nullable<long> _ownerid;
private short _hasld;
private long? _NSRPBO;
private long? _NSRPSV2;
private long? _ORIGINATOR;
private long? _NSRPSV1;
private long? _NSRPSV3;
private long? _NSRPSV;
private long? _NSRPFM;
private long? _NSRPME;
private long? _NSRPMM;
private long? _NSRPPM;
public wfassignment(long? ANSRPBO, long? ANSRPSV2, long? AORIGINATOR, long? ANSRPSV1,
long? ANSRPSV3, long? ANSRPSV, long? ANSRPFM, long? ANSRPME,
long? ANSRPMM, long? ANSRPPM)
{
_NSRPBO = ANSRPBO;
_NSRPSV2 = ANSRPSV2;
_ORIGINATOR = AORIGINATOR;
_NSRPSV1 = ANSRPSV1;
_NSRPSV3 = ANSRPSV3;
_NSRPSV = ANSRPSV;
_NSRPFM = ANSRPFM;
_NSRPME = ANSRPME;
_NSRPMM = ANSRPMM;
_NSRPPM = ANSRPPM;
}
public wfassignment() { }
public long? NSRPBO { get { return _NSRPBO; } }
public long? NSRPSV2 { get { return _NSRPSV2; } }
public long? ORIGINATOR { get { return _ORIGINATOR; } }
public long? NSRPSV1 { get { return _NSRPSV1; } }
public long? NSRPSV3 { get { return _NSRPSV3; } }
public long? NSRPSV { get { return _NSRPSV; } }
public long? NSRPFM { get { return _NSRPFM; } }
public long? NSRPME { get { return _NSRPME; } }
public long? NSRPMM { get { return _NSRPMM; } }
public long? NSRPPM { get { return _NSRPPM; } }
这是我的Linq查询结果。enter image description here
请帮助我,非常感谢!
您需要添加Serializable
属性以指示可以序列化Serializable
类: