1. Linq中直接执行数据库语句
string sql = "update AMS_Plan_Item set audit_status=1 where plan_id ='" + planid + "' and (audit_status=0 or audit_status=9) and plan_type=0 ";
int re = context.Database.ExecuteSqlCommand(sql);
2.Linq 左链接
var queryauto = from stock in context.AMS_stock
join asset in context.AMS_assets on stock.asset_id equals asset.asset_id into stockasset
//多条件的链接join asset in context.AMS_assets on new {a.xxx,a.xxxx} equals new {b.xxx,b.xxxx} into xxx
from LFstockAndasset in stockasset.DefaultIfEmpty()
join unit in context.AMS_units on LFstockAndasset.unit_id equals unit.unit_id into assetunit
from LFassetAndunit in assetunit.DefaultIfEmpty()
join supp in context.AMS_suppliers on LFstockAndasset.supplier_id equals supp.supplier_id into assetsupp
from LFsuppAndasset in assetsupp.DefaultIfEmpty()
join manu in context.AMS_manufacturers on LFstockAndasset.manufacturer_id equals manu.manufacturer_id into assetmanu
from LFmanuAndasset in assetmanu.DefaultIfEmpty()
select new AMS_stock_View//
{
manuname = LFmanuAndasset.name,
suppname = LFsuppAndasset.name,
sellprice = LFstockAndasset.sellprice,
asset_id = stock.asset_id,
asset_name = LFstockAndasset.name,
lpinyin = LFstockAndasset.lpinyin,
spinyin = LFstockAndasset.spinyin,
uncheck_amount = stock.uncheck_amount,
spec = LFstockAndasset.spec,
unitname = LFassetAndunit.name,
price = stock.price,
bacth = stock.bacth,
validitydate = stock.validitydate,
};
queryauto = queryauto.Where(p => (p.asset_name.Contains(search) || p.lpinyin.Contains(search) || p.spinyin.Contains(search))).Where(p => p.uncheck_amount > 0).Take(50);
List<AMS_stock_View> lstauto = queryauto.ToList();
Response.Write(JsonHelper.ListToJson<AMS_stock_View>(lstauto, "JSON"));
var query = from planItem in context.AMS_Plan_Item
join plan in context.AMS_Plans on planItem.plan_id equals plan.plan_id into PlanItemandplan
from LFplanItemAndplan in PlanItemandplan.DefaultIfEmpty()
where (planItem.audit_status == 0 || planItem.audit_status == 9) && planItem.plan_type == 1 && LFplanItemAndplan.year == year && LFplanItemAndplan.month == month
select planItem;
3.linq更新
获取数据并更新
AMS_Plan_Item planitem = new AMS_Plan_Item();
planitem.plan_item_id = dtl.planitemid;
AMS_Plan_Item planchange= entity.AMS_Plan_Item.AsNoTracking().Where(p => p.plan_item_id == planitem.plan_item_id).FirstOrDefault();
planitem.supply_amount = planchange.supply_amount+ dtl.quantity;
entity.AMS_Plan_Item.Attach(planitem);
DbEntityEntry<AMS_Plan_Item> entry = entity.Entry<AMS_Plan_Item>(planitem);
entry.State = System.Data.Entity.EntityState.Unchanged;
entry.Property(p => p.supply_amount).IsModified = true; //设置要更新的属性
int i = entity.SaveChanges();
4.Linq