У меня есть обобщенный c анонимного класса, как показано ниже:
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));
}
}
}
Я пытался получить данные этого типа, например, для веб-службы, но это не работает.
[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;
}
Это класс 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. введите описание изображения здесь
В возвращаемом файле xml нет ожидаемых полей, я не знаю, где это неправильно. Пожалуйста, помогите мне, большое спасибо!