【发布时间】:2012-05-24 14:04:21
【问题描述】:
有条件地合并两个列表中的数据
表结构如下
MobileID ModelID ManufacturerID IsApproved
其中 IsApproved 是布尔值,
当新的手机录入数据库时,它会向经理审批,直到它的IsApproved值为0,当它被批准时IsApproved值将变为1。
我想做如下
我正在使用下面写的第一个查询获取所有已批准移动设备的列表
现在的问题是我必须根据 2 个条件显示所有手机
1) 如果存在具有相同模型ID 和制造商ID 的手机(意味着规范已更新),那么它的 IsApproved 字段将变为 0 --> 不在数据库中,而是在列表中仅用于显示目的)
2) 如果 Mobile 是新的,则其 IsApproved 状态应为 0
我应该怎么做才能有条件地合并这两个列表?
我的 LINQ 查询如下
var listApproved = objMobile.MobileLists.where(mb => mb.IsApproved == true).toList();
var listUnApproved = objMobile.MobileLists.where(mb => mb.IsApproved == false).toList();
假设表格数据如下
MobileID ModelID ManufacturerID IsApproved
01 mod1 manu1 1
02 mod2 manu2 1
03 mod3 manu3 1
04 mod1 manu1 0
05 mod5 manu5 0
06 mod6 manu6 0
07 mod2 manu2 0
我希望列表为
MobileID ModelID ManufacturerID IsApproved
01 mod1 manu1 0
02 mod2 manu2 0
03 mod3 manu3 1
05 mod5 manu5 0
05 mod6 manu6 0
【问题讨论】:
-
您的列表似乎是错误的“如果 modelId 和 ManuId 相同,则 IsApproved = 0”,但 MobileId 2 和 Mobile 3 都具有相同的型号和 Manu id,并且您的列表在 IsApproved 中显示为 1
-
我应该编辑数据以便更好地理解...
标签: c# .net linq linq-to-entities