return LINQ to list<entity>?
    List<PersonsInChargeEntity> picList = new List<PersonsInChargeEntity>();
    List<ClientEntity> clientList = new List<ClientEntity>();
    var returnList = (from PersonsInChargeEntity pic in picList
                     join ClientEntity client in clientList
                     on pic.ClientNumber equals client.ClientNumber
                     select new { ClientNumber = pic.ClientNumber, CompanyName = client.CompanyNameFull, AICGroupID = pic.AI开发者_高级运维CStaffGroupID, RPStaffID = pic.RPStaffID, MPStaffID = pic.MPStaffID, CSPStaffID = pic.CSPStaffID, EQCRStaffID = pic.EQCRStaffID }).ToList<PicList>();
How can i convert my returnList to a List< entity>? below is my class for the entity.
public class PicList
{
    int _ClientNumber = 0;
    string _CompanyName = "";
    int _AICGroupID = 0;
    int _RPStaffID = 0;
    int _MPStaffID = 0;
    int _CSPStaffID = 0;
    int _EQCRStaffID = 0;
    public PicList()
    {
    }
    public PicList(int ClientNumber, string CompanyName, int AICGroupID, int RPStaffID, int MPStaffID, int CSPStaffID, int EQCRStaffID)
    {
        _ClientNumber = ClientNumber;
        _CompanyName = CompanyName;
        _AICGroupID = AICGroupID;
        _RPStaffID = RPStaffID;
        _MPStaffID = MPStaffID;
        _CSPStaffID = CSPStaffID;
        _EQCRStaffID = EQCRStaffID;
    }
    public int ClientNumber
    {
        get { return _ClientNumber; }
        set { _ClientNumber = value; }
    }
    public string CompanyName
    {
        get { return _CompanyName; }
        set { _CompanyName = value.Trim(); }
    }
    public int AICGroupID
    {
        get { return _AICGroupID; }
        set { _AICGroupID = value; }
    }
    public int RPStaffID
    {
        get { return _RPStaffID; }
        set { _RPStaffID = value; }
    }
    public int MPStaffID
    {
        get { return _MPStaffID; }
        set { _MPStaffID = value; }
    }
    public int CSPStaffID
    {
        get { return _CSPStaffID; }
        set { _CSPStaffID = value; }
    }
    public int EQCRStaffID
    {
        get { return _EQCRStaffID; }
        set { _EQCRStaffID = value; }
    }
}
From my understanding of your problem, you require the result of the query to be a List<PicList>. To accomplish this, you need to select an instance of the concrete PicList type within your LINQ query rather than of an anonymous type. C# doesn't normally support duck-typing (with some exceptions); in particular, it's not possible to cast one type to another just because the two types happen to have similar property declarations.
I also observe that PicList has a public parameterless constructor, and that all the properties have public setters. So this should work fine:
var returnList = (from PersonsInChargeEntity pic in picList
                  join ClientEntity client in clientList
                  on pic.ClientNumber equals client.ClientNumber
                  select new PicList // no longer an anonymous type
                  { 
                     ClientNumber = pic.ClientNumber, 
                     CompanyName = client.CompanyNameFull,
                     AICGroupID = pic.AICStaffGroupID, 
                     RPStaffID = pic.RPStaffID, 
                     MPStaffID = pic.MPStaffID, 
                     CSPStaffID = pic.CSPStaffID,
                     EQCRStaffID = pic.EQCRStaffID
                  }).ToList(); 
  //ToList<PicList>() is fine but redundant: the generic type argument is inferred.
you are creating an anonymous type here, which can't be casted like you've tried.
try something like:
var returnList = (from PersonsInChargeEntity pic in picList
                  join ClientEntity client in clientList
                  on pic.ClientNumber equals client.ClientNumber
                  select new PicList
                  {
                    ClientNumber = pic.ClientNumber,
                    CompanyName = pic.CompanyNameFull,
                    AICGroupID = pic.AICStaffGroupID,
                    RPStaffID = pic.RPStaffID,
                    MPStaffID = pic.MPStaffID,
                    CSPStaffID = pic.CSPStaffID,
                    EQCRStaffID = pic.EQCRStaffID
                  })/*.ToList()*/;
    personList = picp.GetPersonsInChargeList();  // got 6000++ records
    clientList = (List<ClientEntity>)cp.GetClientList();  // got 5000 ++ records after step thru
    //PicList sdf;
    var returnList = (from PersonsInChargeEntity pic in personList
                     join ClientEntity client in clientList
                     on pic.ClientNumber equals client.ClientNumber
                     select new PicList { ClientNumber = pic.ClientNumber, CompanyName = client.CompanyNameFull, AICGroupID = pic.AICStaffGroupID, RPStaffID = pic.RPStaffID, 
                     MPStaffID = pic.MPStaffID, CSPStaffID = pic.CSPStaffID, EQCRStaffID = pic.EQCRStaffID }).ToList();
but returnList doesnt have any records.
Hmmm, You can do it by very basic method linke this
 List<ClientEntity> clientList = new List<ClientEntity>();
var returnList = (from PersonsInChargeEntity pic in picList
                 join ClientEntity client in clientList
                 on pic.ClientNumber equals client.ClientNumber
                 select pic ;
foreach(var item in pic) { ClientEntity obj = new ClientEntity();
obj.ClientNumber  =  item.ClientNumber 
...... ...... clientList.add(obj);
}
return clientlist;
I hope this will run for you as well
 
         加载中,请稍侯......
 加载中,请稍侯......
      
精彩评论