3 回答
TA贡献1878条经验 获得超4个赞
如果它只是LINQ中的CASE语句,请阅读(您的评论),然后再举一个例子。
Int32[] numbers = new Int32[] { 1, 2, 1, 3, 1, 5, 3, 1 };
var numberText =
(
from n in numbers
where n > 0
select new
{
Number = n,
Text =
(
n == 1 ? "One" :
n == 2 ? "Two" :
n == 3 ? "Three" : "Unknown"
)
}
);
TA贡献1856条经验 获得超17个赞
到目前为止,这是我的进度,目前还没有任何工作,但这是一个开始:
var query2 = from items in db.cdsItems
where items.ItemTrackingCode.Equals("A") && (items.ItemQtyOnHand - items.ItemQtyCommitted) > 0
select new {
items,
qty =
(
items.ItemPromoFlag.Equals("1") ? "100000" :
items.ItemCat1.Equals("1") ? "100000" :
items.ItemSaleStatus.Equals("O") ? "0" :
(items.ItemQtyOnHand - items.ItemQtyCommitted).ToString
)
};
这种语法对我来说似乎很尴尬...我可能只是通过sql。
TA贡献1875条经验 获得超3个赞
首先,选择要更新的项目。然后,使用常规C#更新它们。提交更改。
var q = from osc in MyDataContext.osc_products
join cds in cds_oeinvitem on osc.products_model equals cds.itemno into p
where osc.Itemwebflag == 'Y'
select p;
foreach (var item in q)
{
if (item.itempromoflag != "N")
item.products_quantity = 100000;
else if ((new[] { 1, 2, 31 }.Contains(item.itemcat1)) && (item.itemsalestatus == 'S'))
item.products_quantity = 100000;
else if (item.itemsalestatus == 0)
item.products_quantity = 0;
else
item.products_quantity = item.itemqtyonhand - item.itemqtycommitted;
}
MyDataContext.SubmitChanges();
- 3 回答
- 0 关注
- 350 浏览
添加回答
举报