LINQ转换有没有简单的写法
.Select(z => new Tranlit.DAL.TablesMapping.V_SX_CYInformationInfo
{
AutoId = z.b.AutoId,
Original = z.b.Original,
Publisher = z.b.Publisher,
Title = z.b.Title,
Contents = z.b.Contents,
MainPrompt = z.b.MainPrompt,
Created = z.b.Created,
Hit = z.b.Hit,
ShareCount = z.b.ShareCount,
Review = z.b.Review,
Relay = z.b.Relay,
IsSecret = z.b.IsSecret,
IsDraft = z.b.IsDraft,
CategoryId = z.b.CategoryId,
ChannelId = z.b.ChannelId,
ColumnId = z.b.ColumnId,
IsSynchroUnion = z.b.IsSynchroUnion,
IsSynchroView = z.b.IsSynchroView,
IsConfirm = z.b.IsConfirm,
Source = z.b.Source
}).ToList();
如上面这段代码 ,每个字段都要赋值,有没有简单点的写法(解决匿名对象问题)
[最优解释]
想简单 ,那你用代码生成器吧
[其他解释]
想简单 ,那你用代码生成器吧
[其他解释]
基本没啥简单的,因为是不同引用对象
可以研究下 C#之深度复制和浅度复制
http://www.cnblogs.com/liaofang/articles/1288761.html
[其他解释]
问题你用的不是匿名对象啊。。。
[其他解释]
处理数据加载函数
UINT32 ProcSegmentDownLoad(UCHAR ucChanNum,UCHAR ucAddr, UINT32 ulPos, PCCU485_QueryInfoT pMsg)
UCHAR ucNetFn = j1;UCHAR ucCmd = j1;UCHAR aucData[4] = {0};UINT32 ulResId = j3;
UINT16 uwHandle = j2;UINT32 ulRet = CCU_OK;UINT32 ulBlkTmp = j3;UINT32 ulCurBlk = j3;
UINT32 ulSchdule = 0;
CHECK_PARA1_NULL_RN(pMsg, CCU_ERR_MPI_INVALID_PARAMS);uwHandle = y5.uwHandle;y9;y8;
/* 上报上来的帧数 */ulBlkTmp = (UINT32)(pMsg->pData[3] << 8) + pMsg->pData[4];
ulCurBlk = y5.ulCurBlk;DBG_DOWNLOAD; ucNetFn = CCU_485LOAD_TYPE;ucCmd = CCU_485_LOAD_EXC_CMD;
if (CCU_OK == pMsg->pData[2]){if (ulCurBlk == ulBlkTmp + 1){if ( y5.ulCurBlk == y5.ulTotalBlk )
{/* 定时器终止 */y5.ucWaitTime = j1;y5.ucTimeCnt = 0;y5.ucRepeatTime = LOAD_RESEND_TIME;
y5.ucLoadState = END_DOWNLOAD_SEND;
ulRet = RS485RqNormal(ulResId, (UINT16)ulPos, uwHandle, ucNetFn, ucCmd, aucData, 0);y8;}
else{/* 定时器终止 */y5.ucWaitTime = j1;y5.ucTimeCnt = 0;y5.ucRepeatTime = LOAD_RESEND_TIME;
y5.ucLoadState = LOAD_SEGMENT_SEND; if (0 == y5.ulCurBlk % 20 ){
ulSchdule = (y5.ulCurBlk * 100) / y5.ulTotalBlk;DBG_DOWNLOAD;ulRet = ReportLoadSchedToPdt(y5.ulResourceId,\
y5.enLoadType,ulSchdule);}
ulRet = RS485RqNormal(ulResId, (UINT16)ulPos, uwHandle, ucNetFn, ucCmd, aucData, sizeof(aucData));
y8;} }else{/* 如果收到已经处理过的重复帧或错误帧,扔掉不处理了 */return CCU_OK;} }
else{DBG_DOWNLOAD;return CCU_485_ERR_QUREYCMDERR;}return ulRet;
处理结束加载函数
UINT32 ProcEndDownLoad(UCHAR ucChanNum,UCHAR ucAddr, UINT32 ulPos, PCCU485_QueryInfoT pMsg)
UCHAR ucNetFn = j1;UCHAR ucCmd = j1;UCHAR aucData[4] = {0};
UINT32 ulResId = j3;UINT16 uwHandle = j2;UINT32 ulRet = CCU_OK;
CHECK;uwHandle = y5.uwHandle;y9;y8;DBG_DOWNLOAD;ucNetFn = CCU_485LOAD_TYPE;
ucCmd = CCU_485_LOAD_EXC_CMD;/* 如果收到结束加载的响应,则转到下一个状态机 */
if (CCU_OK == pMsg->pData[2]){ /* 定时器终止 */y5.ucWaitTime = j1;y5.ucTimeCnt = 0;
y5.ucLoadState = ACTIVE_APP_SEND;
ulRet = RS485RqNormal(ulResId, (UINT16)ulPos, uwHandle, ucNetFn, ucCmd, aucData, 0);
y8;}else{ return CCU_485_ERR_QUREYCMDERR;}return ulRet;