首页 新闻 会员 周边

LINQ使用连接返回实体的问题。

0
[待解决问题]

public RoomClean RoomCleanDateTest2(int id)
{
RoomClean rcc = new RoomClean();
var left = (from rc in db.RoomCleans
join rsr in db.RoomStatusRecords
on rc.StatusID equals rsr.StatusID
into all
from rs in all.DefaultIfEmpty()
where rc.CleanID == id
select new
{
RoomID = rc.RoomID,
StatusID = rc.StatusID
}
).FirstOrDefault();

return rcc ;
}

====================================

如何返回RoomClean的类型呢?我试过强制转换的方式不可取

技术控甄的主页 技术控甄 | 菜鸟二级 | 园豆:236
提问于:2014-06-27 12:23
< >
分享
所有回答(3)
0

你select new RoomClean{RoomID = rc.RoomID,StatusID = rc.StatusID }这样

不要new{},就可以啦

吴瑞祥 | 园豆:29449 (高人七级) | 2014-06-27 12:27

RoomClean 如果是生成的映射实体类在LINQ TO SQL情况你这样会异常的,楼主不嫌麻烦可以先ToArrary()或ToList(),再投射一次。(ToArray().Select(c=> new RoomClean{RoomID = c.RoomID,StatusID = c.StatusID }))注意,前面的select也保留,不然所有字段都会在内存中。

支持(0) 反对(0) C#开发人员 | 园豆:181 (初学一级) | 2014-07-02 13:22
0

我一般都用的这个类型dynamic去接收的。都不用转换的。视图上直接用。

大楚打码人 | 园豆:4313 (老鸟四级) | 2014-06-30 15:30
0

你做映射了呀 .映射的时候直接c=>new RoomClean{RoomID = rc.RoomID,
StatusID = rc.StatusID}

望着天的蜗牛 | 园豆:354 (菜鸟二级) | 2014-08-16 19:24
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册