更新查詢方式

This commit is contained in:
2025-11-12 15:58:20 +08:00
parent 6f5a2e65bd
commit 5ae262205c
17 changed files with 501 additions and 130 deletions

View File

@@ -63,17 +63,17 @@ public class activityController : ApiController
// DELETE api/<controller>/5
public void Delete(int id)
{
var prod = _db.activities.AsEnumerable().Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
var prod = _db.activities.Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
if (prod != null)
{
//刪除相關資料
var prod2 = _db.activity_relating.AsEnumerable().Where(q => q.activity_num == id).ToList(); //相關項目
var prod2 = _db.activity_relating.Where(q => q.activity_num == id).ToList(); //相關項目
if (prod2.Count > 0)
{
//查詢結果全部刪除
_db.activity_relating.RemoveRange(prod2);
}
var prod3 = _db.activity_spares.AsEnumerable().Where(q => q.activity_num == id).ToList(); //備品項目
var prod3 = _db.activity_spares.Where(q => q.activity_num == id).ToList(); //備品項目
if (prod3.Count > 0)
{
_db.activity_spares.RemoveRange(prod3);
@@ -98,7 +98,7 @@ public class activityController : ApiController
[Route("api/activity/DeleteItem/{id}")]
public void DeleteItem(int id)
{
var prod = _db.actItems.AsEnumerable().Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
var prod = _db.actItems.Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
/*if (prod != null)
{
//var prod2 = _db.actItem_files.AsEnumerable().Where(q => q.actItem_num == id).ToList(); //相關項目
@@ -144,11 +144,11 @@ public class activityController : ApiController
{
var ids = nums.TrimEnd(',').Split(',').Select(s => int.Parse(s));
var prod = _db.activities.AsEnumerable().Where(q => ids.Contains(q.num)).ToList();
var prod = _db.activities.Where(q => ids.Contains(q.num)).ToList();
if (prod.Count() > 0)
{
//var prod2 = _db.activity_relating.AsEnumerable().Where(q => ids.Contains(Convert.ToInt32(q.activity_num))).ToList();
var prod2 = _db.activity_relating.AsEnumerable().Where(q => ids.Any(x => x == q.activity_num)).ToList();
var prod2 = _db.activity_relating.Where(q => ids.Contains(q.activity_num)).ToList();
if (prod2.Count > 0)
{
_db.activity_relating.RemoveRange(prod2);
@@ -156,7 +156,7 @@ public class activityController : ApiController
}
//var prod3 = _db.activity_spares.AsEnumerable().Where(q => ids.Contains(Convert.ToInt32(q.activity_num))).ToList();
var prod3 = _db.activity_spares.AsEnumerable().Where(q => ids.Any(x => x == q.activity_num)).ToList();
var prod3 = _db.activity_spares.Where(q => ids.Contains(q.activity_num)).ToList();
if (prod3.Count > 0)
{
_db.activity_spares.RemoveRange(prod3);
@@ -186,11 +186,11 @@ public class activityController : ApiController
if (!string.IsNullOrEmpty(nums))
{
var ids = nums.TrimEnd(',').Split(',').Select(s => int.Parse(s));
var prod = _db.actItems.AsEnumerable().Where(q => ids.Contains(q.num)).ToList();
var prod = _db.actItems.Where(q => ids.Contains(q.num)).ToList();
if (prod.Count() > 0)
{
//var prod2 = _db.actItem_files.AsEnumerable().Where(q => ids.Contains(Convert.ToInt32(q.actItem_num))).ToList();
var prod2 = _db.actItem_files.AsEnumerable().Where(q => ids.Any(x => x == q.actItem_num)).ToList();
var prod2 = _db.actItem_files.Where(q => ids.Contains(q.actItem_num)).ToList();
if (prod2.Count > 0)
{
_db.actItem_files.RemoveRange(prod2);
@@ -224,7 +224,7 @@ public class activityController : ApiController
public IHttpActionResult GetList([FromBody] Model.ViewModel.activity q, int page, int pageSize = 10,
string sortBy = "", bool sortDesc = false)
{
var qry = _db.activities.AsEnumerable();
var qry = _db.activities.AsQueryable();
if (!string.IsNullOrEmpty(q.subject))
qry = qry.Where(o => o.subject.Contains(q.subject));
if (q.kind.HasValue && q.kind > 0)
@@ -319,7 +319,7 @@ public class activityController : ApiController
{
//var stockDt = _db.stocks.AsEnumerable(); ;//庫存
var fileDt = _db.files.AsEnumerable().Where(f => f.subject.Contains(q.fileTxt)).Select(f => f.num.ToString());//文件
var fileDt = _db.files.Where(f => f.subject.Contains(q.fileTxt)).Select(f => f.num.ToString());//文件
//每個品項在每個倉庫的結餘量
var stockDt = (
@@ -348,7 +348,7 @@ public class activityController : ApiController
////var qry = _db.actItems.Where(a => a.IsDel == false).AsEnumerable();////不確定是否新增欄位? 先註解
var qry = _db.actItems.AsEnumerable();
var qry = _db.actItems.AsQueryable();
if (!string.IsNullOrEmpty(q.subject))
qry = qry.Where(o => o.subject.Contains(q.subject.Trim()));
@@ -711,7 +711,7 @@ public class activityController : ApiController
[Route("api/activity/DeleteFilesItem/{id}")]//刪除品項的相關文件
public void DeleteFilesItem(int id)
{
var prod = _db.actItem_files.AsEnumerable().Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
var prod = _db.actItem_files.Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
if (prod != null)
{
@@ -731,7 +731,7 @@ public class activityController : ApiController
if (this_id > 0)
{
//檢查
var qry = _db.activity_kind_detail.AsEnumerable();
var qry = _db.activity_kind_detail.AsQueryable();
qry = qry.Where(o => o.activity_kind_num == this_id);
int i = 1;
@@ -830,7 +830,7 @@ public class activityController : ApiController
[Route("api/activity/DeleteActKindDetail/{id}")]//刪除活動分類的detail
public void DeleteActKindDetail(int id)
{
var prod = _db.activity_kind_detail.AsEnumerable().Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
var prod = _db.activity_kind_detail.Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
if (prod != null)
{
@@ -849,7 +849,7 @@ public class activityController : ApiController
if (this_act_id > 0)
{
//檢查
var prod = _db.activities.AsEnumerable().Where(o => o.num == this_act_id).FirstOrDefault();
var prod = _db.activities.Where(o => o.num == this_act_id).FirstOrDefault();
if (prod != null)
{
int kind = prod.kind ?? 0; //分類
@@ -927,7 +927,7 @@ public class activityController : ApiController
if (kind > 0)
{
int i = 1;
var qry2 = _db.activity_kind_detail.AsEnumerable();
var qry2 = _db.activity_kind_detail.AsQueryable();
qry2 = qry2.Where(o => o.activity_kind_num == kind);
var count2 = qry2.Count(); //pageSize = count2;//一次取回??
if (pageSize > 0) qry2 = qry2.ToPagedList(page, pageSize);
@@ -992,7 +992,7 @@ public class activityController : ApiController
public IHttpActionResult GetKindList([FromBody] Model.ViewModel.activity_kind q,
int page, int pageSize = 10, string sortBy = "", bool sortDesc = false)
{
var qry = _db.activity_kind.AsEnumerable();
var qry = _db.activity_kind.AsQueryable();
if (q.num.HasValue && q.num > 0)
qry = qry.Where(o => o.num == q.num);
if (!string.IsNullOrEmpty(q.kind))
@@ -1031,7 +1031,7 @@ public class activityController : ApiController
{
if (id > 0)
{
var qry = _db.activity_kind.AsEnumerable();
var qry = _db.activity_kind.AsQueryable();
qry = qry.Where(o => o.num == id);
var prop3 = qry.FirstOrDefault();
if (prop3 != null)
@@ -1151,7 +1151,7 @@ public class activityController : ApiController
[Route("api/activity/DeleteRelatingData/{id}")]//刪除活動的相關資料
public void DeleteRelatingData(int id)
{
var prod = _db.activity_relating.AsEnumerable().Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
var prod = _db.activity_relating.Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
if (prod != null)
{
@@ -1169,14 +1169,14 @@ public class activityController : ApiController
if (this_act_id > 0)
{
//檢查
var prod = _db.activities.AsEnumerable().Where(o => o.num == this_act_id).FirstOrDefault();
var prod = _db.activities.Where(o => o.num == this_act_id).FirstOrDefault();
if (prod != null)
{
int kind = prod.kind ?? 0; //分類
var qry1 = _db.activity_spares.AsEnumerable();
var qry1 = _db.activity_spares.AsQueryable();
qry1 = qry1.Where(o => o.activity_num == this_act_id);
qry1 = qry1.OrderBy(o => o.num);
@@ -1278,7 +1278,7 @@ public class activityController : ApiController
[Route("api/activity/DeleteSparesData/{id}")]//刪除活動的備品資料
public void DeleteSparesData(int id)
{
var prod = _db.activity_spares.AsEnumerable().Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
var prod = _db.activity_spares.Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
if (prod != null)
{
@@ -1331,7 +1331,7 @@ public class activityController : ApiController
string sortBy = "", bool sortDesc = false)
{
var qry = _db.activity_check.AsEnumerable();
var qry = _db.activity_check.AsQueryable();
if (!string.IsNullOrEmpty(q.activityTxt))
qry = qry.Where(o => o.activity.subject.Contains(q.activityTxt.Trim()));
@@ -1416,7 +1416,7 @@ public class activityController : ApiController
[Route("api/activity/DeleteCheck/{id}")]
public void DeleteCheck(int id)
{
var prod = _db.activity_check.AsEnumerable().Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
var prod = _db.activity_check.Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
if (prod != null)
{
@@ -1439,7 +1439,7 @@ public class activityController : ApiController
if (!string.IsNullOrEmpty(num[i]))
ids[i] = Convert.ToInt32(num[i]);
}
var prod = _db.activity_check.AsEnumerable().Where(q => ids.Contains(q.num)).ToList();
var prod = _db.activity_check.Where(q => ids.Contains(q.num)).ToList();
if (prod.Count() > 0)
{
@@ -1458,7 +1458,7 @@ public class activityController : ApiController
{
DateTime _now = DateTime.Now;
var qry = _db.activities.AsEnumerable();
var qry = _db.activities.AsQueryable();
if (q.reg_time1.HasValue)
qry = qry.Where(o => o.reg_time >= q.reg_time1.Value);
@@ -1510,7 +1510,7 @@ public class activityController : ApiController
public IHttpActionResult GetCategoryKindList([FromBody] Model.ViewModel.activity_category_kind q,
int page, int pageSize = 10, string sortBy = "", bool sortDesc = false)
{
var qry = _db.activity_category_kind.AsEnumerable();
var qry = _db.activity_category_kind.AsQueryable();
if (q.num.HasValue && q.num > 0)
qry = qry.Where(o => o.num == q.num);
if (!string.IsNullOrEmpty(q.kind))

View File

@@ -99,7 +99,7 @@ public class orderController : ApiController
{
if (id > 0)
{
var prod = _db.pro_order_detail.AsEnumerable().Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
var prod = _db.pro_order_detail.Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
if (prod != null)
{
//刪除掛單表單
@@ -134,7 +134,7 @@ public class orderController : ApiController
{
var ids = nums.TrimEnd(',').Split(',');
var prod = _db.pro_order.AsEnumerable().Where(q => ids.Contains(q.order_no)).ToList();
var prod = _db.pro_order.Where(q => ids.Contains(q.order_no)).ToList();
if (prod.Count() > 0)
{
var prod2 = _db.pro_order_detail.AsEnumerable().Where(q => ids.Contains(Convert.ToString(q.order_no))).ToList();
@@ -201,7 +201,7 @@ public class orderController : ApiController
string sortBy = "", bool sortDesc = false)
{
var qry = _db.pro_order.AsEnumerable();
var qry = _db.pro_order.AsQueryable();
//var aIDt = _db.actItems.AsEnumerable().Where(f => f.subject.Contains(q.actItemTxt.Trim())).Select(f => f.num);//品項
@@ -801,15 +801,15 @@ public class orderController : ApiController
{
//家族 : 家長是我的人,跟我同家長的人,我的家長本人,我本人
var cc = _db.followers.Where(x => x.num == _follower || x.leader == _follower).Select(x => x.num);
var qry = _db.followers.AsEnumerable().Where(f => cc.Any(x => x == f.num) || cc.Any(x => x == f.leader));
var ccList = _db.followers.Where(x => x.num == _follower || x.leader == _follower).Select(x => x.num).ToList();
var qry = _db.followers.Where(f => ccList.Contains(f.num) || ccList.Contains(f.leader));
//未付款資料
var unpayDt = _db.pro_order_detail.AsEnumerable();
var unpayDt = _db.pro_order_detail.AsQueryable();
var coDt = unpayDt.Where(x => x.keyin1 == (int)Model.pro_order.detailKeyin1.Collection);//只列出報名狀態為"收款中"的項目
//未付款訂單
var orderDt = _db.pro_order.AsEnumerable();
var orderDt = _db.pro_order.AsQueryable();
if (!string.IsNullOrEmpty(order_no))
orderDt = orderDt.Where(x => x.order_no == order_no);
orderDt = orderDt.Where(x => coDt.Select(d => d.order_no).Contains(x.order_no));
@@ -855,7 +855,7 @@ public class orderController : ApiController
{
//未付款資料
var unpayDt = _db.pro_order_detail.AsEnumerable();
var unpayDt = _db.pro_order_detail.AsQueryable();
unpayDt = unpayDt.Where(x => x.keyin1 == (int)Model.pro_order.detailKeyin1.Collection);//只列出報名狀態為"收款中"的項目
if (!string.IsNullOrEmpty(q.order_no))
@@ -1118,7 +1118,7 @@ public class orderController : ApiController
[Route("api/order/DeleteRecordDetail/{id}")]//刪除收款註記
public void DeleteRecordDetail(int id)
{
var prod = _db.pro_order_record.AsEnumerable().Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
var prod = _db.pro_order_record.Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
if (prod != null)
{

View File

@@ -48,7 +48,7 @@ public class projectController : BaseApiController
// DELETE api/<controller>/5
public void Delete(int id)
{
var prod = _db.projects.AsEnumerable().Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
var prod = _db.projects.Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
if (prod != null)
{
_db.project_sub.RemoveRange(prod.project_sub); //刪除活動資料
@@ -75,7 +75,7 @@ public class projectController : BaseApiController
if (!string.IsNullOrEmpty(nums))
{
var ids = nums.TrimEnd(',').Split(',').Select(s => int.Parse(s));
var prod = _db.projects.AsEnumerable().Where(q => ids.Contains(q.num)).ToList();
var prod = _db.projects.Where(q => ids.Contains(q.num)).ToList();
if (prod.Count() > 0)
{
foreach (var item in prod)
@@ -103,7 +103,7 @@ public class projectController : BaseApiController
{
if (id > 0)
{
var prod = _db.project_sub.AsEnumerable().Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
var prod = _db.project_sub.Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
if (prod != null)
{
_db.project_sub.Remove(prod);
@@ -117,7 +117,7 @@ public class projectController : BaseApiController
public IHttpActionResult GetList([FromBody] Model.ViewModel.project q, int page, int pageSize = 10,
string sortBy = "", bool sortDesc = false)
{
var qry = _db.projects.AsEnumerable();
var qry = _db.projects.AsQueryable();
if (!string.IsNullOrEmpty(q.subject))
qry = qry.Where(o => o.subject.Contains(q.subject.Trim()));
@@ -192,7 +192,7 @@ public class projectController : BaseApiController
public IHttpActionResult GetKindList([FromBody] Model.ViewModel.project_kind q, int page, int pageSize = 10,
string sortBy = "", bool sortDesc = false)
{
var qry = _db.project_kind.AsEnumerable();
var qry = _db.project_kind.AsQueryable();
if (!string.IsNullOrEmpty(q.kind))
qry = qry.Where(o => o.kind.Contains(q.kind));
@@ -247,7 +247,7 @@ public class projectController : BaseApiController
if (q.num.HasValue)
{
var qry = _db.project_sub.AsEnumerable();
var qry = _db.project_sub.AsQueryable();
qry = qry.Where(o => o.pro_id == q.num.Value);
@@ -337,11 +337,11 @@ public class projectController : BaseApiController
public IHttpActionResult GetPatronizeList([FromBody] Model.ViewModel.pro_order_detail q, int page, int pageSize = 10,
string sortBy = "", bool sortDesc = false)
{
var projectDt = _db.projects.AsEnumerable(); ;//專案
var projectDt = _db.projects.AsQueryable(); ;//專案
try
{
var qry = _db.pro_order_detail.AsEnumerable();
var qry = _db.pro_order_detail.AsQueryable();
qry = qry.Where(o => (int?)o.actItem.category == (int)Model.activity.category.Patronize);
if (q.f_num.HasValue)

View File

@@ -55,17 +55,17 @@ public class apporderController : ApiController
// DELETE api/<controller>/5
public void Delete(string id)
{
var prod = _db.pro_order.AsEnumerable().Where(q => q.order_no == id).FirstOrDefault(); //刪除該筆資料
var prod = _db.pro_order.Where(q => q.order_no == id).FirstOrDefault(); //刪除該筆資料
if (prod != null)
{
//刪除掛單表單
var prod3 = _db.bed_order.AsEnumerable().Where(q => q.order_no == id).ToList();
var prod3 = _db.bed_order.Where(q => q.order_no == id).ToList();
if (prod3.Count > 0)
{
//刪除掛單明細
foreach (var item3 in prod3)
{
var prod4 = _db.bed_order_detail.AsEnumerable().Where(q => q.bed_order_no == item3.bed_order_no).ToList();
var prod4 = _db.bed_order_detail.Where(q => q.bed_order_no == item3.bed_order_no).ToList();
if (prod4.Count > 0)
{
_db.bed_order_detail.RemoveRange(prod4); //查詢結果全部刪除
@@ -97,17 +97,17 @@ public class apporderController : ApiController
{
if (id > 0)
{
var prod = _db.pro_order_detail.AsEnumerable().Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
var prod = _db.pro_order_detail.Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
if (prod != null)
{
//刪除掛單表單
var prod3 = _db.bed_order.AsEnumerable().Where(q => q.order_no == prod.order_no).ToList();
var prod3 = _db.bed_order.Where(q => q.order_no == prod.order_no).ToList();
if (prod3.Count > 0) //count = 1
{
//刪除掛單明細
foreach (var item3 in prod3)
{
var prod4 = _db.bed_order_detail.AsEnumerable().Where(q => q.bed_order_no == item3.bed_order_no).ToList();
var prod4 = _db.bed_order_detail.Where(q => q.bed_order_no == item3.bed_order_no).ToList();
if (prod4.Count > 0)
{
_db.bed_order_detail.RemoveRange(prod4); //查詢結果全部刪除
@@ -132,20 +132,20 @@ public class apporderController : ApiController
{
var ids = nums.TrimEnd(',').Split(',');
var prod = _db.pro_order.AsEnumerable().Where(q => ids.Contains(q.order_no)).ToList();
var prod = _db.pro_order.Where(q => ids.Contains(q.order_no)).ToList();
if (prod.Count() > 0)
{
var prod2 = _db.pro_order_detail.AsEnumerable().Where(q => ids.Contains(Convert.ToString(q.order_no))).ToList();
var prod2 = _db.pro_order_detail.Where(q => ids.Contains(Convert.ToString(q.order_no))).ToList();
if (prod2.Count > 0)
{
foreach (var item2 in prod2)
{
var prod3 = _db.bed_order.AsEnumerable().Where(q => q.order_no == item2.order_no && q.o_detail_id == item2.num).ToList();
var prod3 = _db.bed_order.Where(q => q.order_no == item2.order_no && q.o_detail_id == item2.num).ToList();
if (prod3.Count > 0)
{
foreach (var item3 in prod3)
{
var prod4 = _db.bed_order_detail.AsEnumerable().Where(q => q.bed_order_no == item3.bed_order_no).ToList();
var prod4 = _db.bed_order_detail.Where(q => q.bed_order_no == item3.bed_order_no).ToList();
if (prod4.Count > 0)
{
_db.bed_order_detail.RemoveRange(prod4);
@@ -156,8 +156,8 @@ public class apporderController : ApiController
}
//var prod32 = _db.bed_order.AsEnumerable().Where(q => q.order_no == item2.order_no && q.o_detail_id == item2.num).ToList();
//var prod42 = _db.bed_order_detail.AsEnumerable().Where(q => prod32.Select(qf => qf.order_no).ToArray().Contains(q.bed_order_no)).ToList();
//var prod32 = _db.bed_order.Where(q => q.order_no == item2.order_no && q.o_detail_id == item2.num).ToList();
//var prod42 = _db.bed_order_detail.Where(q => prod32.Select(qf => qf.order_no).ToArray().Contains(q.bed_order_no)).ToList();
//_db.bed_order_detail.RemoveRange(prod42);
//_db.bed_order.RemoveRange(prod32);
@@ -199,8 +199,8 @@ public class apporderController : ApiController
string sortBy = "", bool sortDesc = false)
{
var qry = _db.pro_order.AsEnumerable();
//var aIDt = _db.actItems.AsEnumerable().Where(f => f.subject.Contains(q.actItemTxt.Trim())).Select(f => f.num);//品項
var qry = _db.pro_order.AsQueryable();
//var aIDt = _db.actItems.Where(f => f.subject.Contains(q.actItemTxt.Trim())).Select(f => f.num);//品項
if (!string.IsNullOrEmpty(q.order_no))
@@ -317,11 +317,11 @@ public class apporderController : ApiController
if (!string.IsNullOrEmpty( order_no ))
{
//檢查
var prod = _db.pro_order.AsEnumerable().Where(o => o.order_no == order_no).FirstOrDefault();
var prod = _db.pro_order.Where(o => o.order_no == order_no).FirstOrDefault();
if (prod != null)
{
int activity = prod.activity_num.HasValue ? prod.activity_num.Value : 0; //活動
var bedDt = _db.bed_order_detail.AsEnumerable().Where(b=>b.bed_order.order_no== order_no ); ;//掛單明細
var bedDt = _db.bed_order_detail.Where(b=>b.bed_order.order_no== order_no ); ;//掛單明細
//var qry1 = _db.pro_order_detail.AsEnumerable();
@@ -435,7 +435,7 @@ public class apporderController : ApiController
if (activity > 0)
{
i = 1;
var qry2 = _db.activity_relating.AsEnumerable();
var qry2 = _db.activity_relating.AsQueryable();
qry2 = qry2.Where(o => o.activity_num == activity);
if (q.actItem_kind_num.HasValue)
@@ -690,14 +690,14 @@ public class apporderController : ApiController
//家族 : 家長是我的人,跟我同家長的人,我的家長本人,我本人
var cc = _db.followers.Where(x => x.num == _follower || x.leader == _follower).Select(x => x.num);
var qry = _db.followers.AsEnumerable().Where(f => cc.Any(x => x == f.num) || cc.Any(x => x == f.leader));
var qry = _db.followers.Where(f => cc.Any(x => x == f.num) || cc.Any(x => x == f.leader));
//未付款資料
var unpayDt = _db.pro_order_detail.AsEnumerable();
var unpayDt = _db.pro_order_detail.AsQueryable();
var coDt = unpayDt.Where(x => x.keyin1 == (int)Model.pro_order.detailKeyin1.Collection);//只列出報名狀態為"收款中"的項目
//未付款訂單
var orderDt = _db.pro_order.AsEnumerable();
var orderDt = _db.pro_order.AsQueryable();
if (!string.IsNullOrEmpty(order_no))
orderDt = orderDt.Where(x => x.order_no == order_no);
orderDt = orderDt.Where(x => coDt.Select(d => d.order_no).Contains(x.order_no));
@@ -737,7 +737,7 @@ public class apporderController : ApiController
{
//未付款資料
var unpayDt = _db.pro_order_detail.AsEnumerable();
var unpayDt = _db.pro_order_detail.AsQueryable();
unpayDt = unpayDt.Where(x => x.keyin1 == (int)Model.pro_order.detailKeyin1.Collection);//只列出報名狀態為"收款中"的項目
if (!string.IsNullOrEmpty(q.order_no))
@@ -865,10 +865,10 @@ public class apporderController : ApiController
if (u_name >0 && (!string.IsNullOrEmpty(q.order_no)))
{
//檢查
var prod = _db.pro_order.AsEnumerable().Where(o => o.f_num == u_name && o.order_no != q.order_no).ToList();
var prod = _db.pro_order.Where(o => o.f_num == u_name && o.order_no != q.order_no).ToList();
if (prod.Count > 0)
{
var qry = _db.pro_order_detail.AsEnumerable().Where(o => prod.Any(x => x.order_no==o.order_no) );
var qry = _db.pro_order_detail.Where(o => prod.Any(x => x.order_no==o.order_no) );
int i = 1;
var ret = new
{
@@ -942,7 +942,7 @@ public class apporderController : ApiController
if (detail_num > 0 )
{
//檢查
var prod = _db.pro_order_record.AsEnumerable().Where(o => o.detail_num == detail_num )
var prod = _db.pro_order_record.Where(o => o.detail_num == detail_num )
.OrderByDescending(o=>o.pay_date).ToList();
int i = 1;
var ret = new
@@ -979,7 +979,7 @@ public class apporderController : ApiController
[Route("api/apporder/DeleteRecordDetail/{id}")]//刪除收款註記
public void DeleteRecordDetail(int id)
{
var prod = _db.pro_order_record.AsEnumerable().Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
var prod = _db.pro_order_record.Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
if (prod != null)
{
@@ -995,8 +995,8 @@ public class apporderController : ApiController
{
if (item.detail_num > 0)
{
float total = _db.pro_order_detail.AsEnumerable().Where(x => x.num == item.detail_num).Select(x => x.price.Value * x.qty.Value).Sum();
float pay = _db.pro_order_record.AsEnumerable().Where(x => x.detail_num == item.detail_num).Select(x => x.price.Value).Sum();
float total = _db.pro_order_detail.Where(x => x.num == item.detail_num).Select(x => x.price.Value * x.qty.Value).Sum();
float pay = _db.pro_order_record.Where(x => x.detail_num == item.detail_num).Select(x => x.price.Value).Sum();
if (pay + item.price.Value <= total)
{

View File

@@ -27,7 +27,6 @@ public partial class admin_hr_kind_reg : MyWeb.config
if (!isStrNull(Request["num"]))
{
int _num = Val(Request["num"]);
var qry = _db.member_group.AsEnumerable();
var prod = _db.member_group.Where(q => q.num == _num).OrderBy(q => q.kind).FirstOrDefault();
if (prod != null)
{
@@ -70,7 +69,6 @@ public partial class admin_hr_kind_reg : MyWeb.config
protected void TreeTopology()
{
var qry = _db.member_group.AsEnumerable();
var prod = _db.member_group.ToList();
//treeDt = prod.CopyToDataTable();
@@ -235,7 +233,7 @@ public partial class admin_hr_kind_reg : MyWeb.config
try
{
var prod = _db.member_group.AsEnumerable().Where(q => q.root == root).OrderByDescending(q => q.range).FirstOrDefault();
var prod = _db.member_group.Where(q => q.root == root).OrderByDescending(q => q.range).FirstOrDefault();
if (prod != null)
if (prod.range.HasValue)
range = prod.range.Value + 1;
@@ -281,7 +279,7 @@ public partial class admin_hr_kind_reg : MyWeb.config
del_product(num);
var prod = _db.member_group.AsEnumerable().Where(q => q.num == num).FirstOrDefault(); //刪除該筆資料
var prod = _db.member_group.Where(q => q.num == num).FirstOrDefault(); //刪除該筆資料
if (prod != null)
{
_db.member_group.Remove(prod);
@@ -302,7 +300,7 @@ public partial class admin_hr_kind_reg : MyWeb.config
public void Del_Ohter_Items(int d_num)
{
var prod = _db.member_group.AsEnumerable().Where(q => q.root == d_num).ToList();
var prod = _db.member_group.Where(q => q.root == d_num).ToList();
if (prod.Count > 0)
{
foreach (var row in prod)
@@ -319,7 +317,7 @@ public partial class admin_hr_kind_reg : MyWeb.config
}
public void del_product(int num)
{
var prod = _db.members.AsEnumerable().Where(q => q.group_kind == num).ToList();
var prod = _db.members.Where(q => q.group_kind == num).ToList();
if (prod.Count > 0)
{
//清空組別分類

View File

@@ -22,7 +22,6 @@ public partial class admin_hr_kind_reg : MyWeb.config
if (!isStrNull(Request["num"]))
{
int _num = Val(Request["num"]);
var qry = _db.member_title.AsEnumerable();
var prod = _db.member_title.Where(q => q.num == _num).OrderBy(q => q.kind).FirstOrDefault();
if (prod != null)
{
@@ -207,7 +206,7 @@ public partial class admin_hr_kind_reg : MyWeb.config
}
try
{
var prod = _db.member_title.AsEnumerable().Where(q => q.root == root).OrderByDescending(q => q.range).FirstOrDefault();
var prod = _db.member_title.Where(q => q.root == root).OrderByDescending(q => q.range).FirstOrDefault();
if (prod != null)
if (prod.range.HasValue)
range = prod.range.Value + 1;
@@ -248,7 +247,7 @@ public partial class admin_hr_kind_reg : MyWeb.config
int num = Val(Request["num"]);
del_product(num);
var prod = _db.member_title.AsEnumerable().Where(q => q.num == num).FirstOrDefault(); //刪除該筆資料
var prod = _db.member_title.Where(q => q.num == num).FirstOrDefault(); //刪除該筆資料
if (prod != null)
{
_db.member_title.Remove(prod);
@@ -269,7 +268,7 @@ public partial class admin_hr_kind_reg : MyWeb.config
public void Del_Ohter_Items(int d_num)
{
var prod = _db.member_title.AsEnumerable().Where(q => q.root == d_num).ToList();
var prod = _db.member_title.Where(q => q.root == d_num).ToList();
if (prod.Count > 0)
{
foreach (var row in prod)
@@ -286,7 +285,7 @@ public partial class admin_hr_kind_reg : MyWeb.config
public void del_product(int num)
{
var prod = _db.members.AsEnumerable().Where(q => q.title_kind == num).ToList();
var prod = _db.members.Where(q => q.title_kind == num).ToList();
if (prod.Count > 0)
{
//清空分類

View File

@@ -21,7 +21,7 @@ public partial class admin_accounting_kind_reg : MyWeb.config
if (!isStrNull(Request["num"]))
{
int _num = Val(Request["num"]);
var prod = _db.accounting_kind.AsEnumerable().Where(q => q.num == _num).OrderBy(q => q.kind).FirstOrDefault();
var prod = _db.accounting_kind.Where(q => q.num == _num).OrderBy(q => q.kind).FirstOrDefault();
if (prod != null)
{
@@ -215,7 +215,7 @@ public partial class admin_accounting_kind_reg : MyWeb.config
try
{
var prod = _db.accounting_kind.AsEnumerable().Where(q => q.root == root).OrderByDescending(q => q.range).FirstOrDefault();
var prod = _db.accounting_kind.Where(q => q.root == root).OrderByDescending(q => q.range).FirstOrDefault();
if (prod != null)
if (prod.range.HasValue)
range = prod.range.Value + 1;
@@ -254,7 +254,7 @@ public partial class admin_accounting_kind_reg : MyWeb.config
int num = Val(Request["num"]);
del_product(num);
var prod = _db.accounting_kind.AsEnumerable().Where(q => q.num == num).FirstOrDefault(); //刪除該筆資料
var prod = _db.accounting_kind.Where(q => q.num == num).FirstOrDefault(); //刪除該筆資料
if (prod != null)
{
_db.accounting_kind.Remove(prod);
@@ -272,7 +272,7 @@ public partial class admin_accounting_kind_reg : MyWeb.config
public void Del_Ohter_Items(int d_num)
{
var prod = _db.accounting_kind.AsEnumerable().Where(q => q.root == d_num).ToList();
var prod = _db.accounting_kind.Where(q => q.root == d_num).ToList();
if (prod.Count > 0)
{
foreach (var row in prod)
@@ -291,7 +291,7 @@ public partial class admin_accounting_kind_reg : MyWeb.config
public void del_product(int num)
{
var prod = _db.accountings.AsEnumerable().Where(q => q.kind == num).ToList();
var prod = _db.accountings.Where(q => q.kind == num).ToList();
if (prod.Count > 0)
{
////查詢結果全部刪除

View File

@@ -21,7 +21,7 @@ public partial class admin_accounting_kind_reg2 : MyWeb.config
if (!isStrNull(Request["num"]))
{
int _num = Val(Request["num"]);
var prod = _db.accounting_kind2.AsEnumerable().Where(q => q.num == _num).FirstOrDefault();
var prod = _db.accounting_kind2.Where(q => q.num == _num).FirstOrDefault();
if (prod != null)
{
@@ -228,7 +228,7 @@ public partial class admin_accounting_kind_reg2 : MyWeb.config
try
{
var prod = _db.accounting_kind2.AsEnumerable().Where(q => q.root == root).OrderByDescending(q => q.range).FirstOrDefault();
var prod = _db.accounting_kind2.Where(q => q.root == root).OrderByDescending(q => q.range).FirstOrDefault();
if (prod != null)
if (prod.range.HasValue)
range = prod.range.Value + 1;
@@ -271,7 +271,7 @@ public partial class admin_accounting_kind_reg2 : MyWeb.config
int num = Val(Request["num"]);
del_product(num);
var prod = _db.accounting_kind2.AsEnumerable().Where(q => q.num == num).FirstOrDefault(); //刪除該筆資料
var prod = _db.accounting_kind2.Where(q => q.num == num).FirstOrDefault(); //刪除該筆資料
if (prod != null)
{
_db.accounting_kind2.Remove(prod);
@@ -288,7 +288,7 @@ public partial class admin_accounting_kind_reg2 : MyWeb.config
public void Del_Ohter_Items(int d_num)
{
var prod = _db.accounting_kind2.AsEnumerable().Where(q => q.root == d_num).ToList();
var prod = _db.accounting_kind2.Where(q => q.root == d_num).ToList();
if (prod.Count > 0)
{
foreach (var row in prod)
@@ -306,7 +306,7 @@ public partial class admin_accounting_kind_reg2 : MyWeb.config
public void del_product(int num)
{
var prod = _db.accountings.AsEnumerable().Where(q => q.kind2 == num).ToList();
var prod = _db.accountings.Where(q => q.kind2 == num).ToList();
if (prod.Count > 0)
{
////查詢結果全部刪除

View File

@@ -24,7 +24,7 @@ public partial class admin_activity_kind_reg : MyWeb.config
{
_this_id = ValString(Request["num"]);
int _num = Val(Request["num"]);
var prod = _db.activity_kind.AsEnumerable().Where(q => q.num == _num).OrderBy(q=>q.kind).FirstOrDefault();
var prod = _db.activity_kind.Where(q => q.num == _num).OrderBy(q=>q.kind).FirstOrDefault();
if (prod != null)
{
@@ -230,7 +230,7 @@ public partial class admin_activity_kind_reg : MyWeb.config
try
{
var prod = _db.activity_kind.AsEnumerable().Where(q => q.root == root).OrderByDescending(q => q.range).FirstOrDefault();
var prod = _db.activity_kind.Where(q => q.root == root).OrderByDescending(q => q.range).FirstOrDefault();
if (prod != null)
if (prod.range.HasValue)
range = prod.range.Value + 1;
@@ -284,7 +284,7 @@ public partial class admin_activity_kind_reg : MyWeb.config
{
int num = Val(Request["num"]);
del_product(num);
var prod = _db.activity_kind.AsEnumerable().Where(q => q.num == num).FirstOrDefault(); //刪除該筆資料
var prod = _db.activity_kind.Where(q => q.num == num).FirstOrDefault(); //刪除該筆資料
if (prod != null)
{
_db.activity_kind.Remove(prod);
@@ -301,7 +301,7 @@ public partial class admin_activity_kind_reg : MyWeb.config
public void Del_Ohter_Items(int d_num)
{
var prod = _db.activity_kind.AsEnumerable().Where(q => q.root == d_num).ToList();
var prod = _db.activity_kind.Where(q => q.root == d_num).ToList();
if (prod.Count > 0)
{
foreach (var row in prod)
@@ -317,7 +317,7 @@ public partial class admin_activity_kind_reg : MyWeb.config
}
public void del_product(int num)
{
var prod = _db.activities.AsEnumerable().Where(q => q.kind == num).ToList();
var prod = _db.activities.Where(q => q.kind == num).ToList();
if (prod.Count > 0)
{
//清空分類

View File

@@ -21,7 +21,7 @@ public partial class admin_activity_kind_reg2 : MyWeb.config
if (!isStrNull(Request["num"]))
{
int _num = Val(Request["num"]);
var prod = _db.activity_category_kind.AsEnumerable().Where(q => q.num == _num).Where(q => q.num == _num).FirstOrDefault();
var prod = _db.activity_category_kind.Where(q => q.num == _num).FirstOrDefault();
if (prod != null)
{
@@ -208,7 +208,7 @@ public partial class admin_activity_kind_reg2 : MyWeb.config
try
{
var prod = _db.activity_category_kind.AsEnumerable().Where(q => q.root == root).OrderByDescending(q => q.range).FirstOrDefault();
var prod = _db.activity_category_kind.Where(q => q.root == root).OrderByDescending(q => q.range).FirstOrDefault();
if (prod != null)
if (prod.range.HasValue)
range = prod.range.Value + 1;
@@ -247,7 +247,7 @@ public partial class admin_activity_kind_reg2 : MyWeb.config
del_product(num);
var prod = _db.activity_category_kind.AsEnumerable().Where(q => q.num == num).FirstOrDefault(); //刪除該筆資料
var prod = _db.activity_category_kind.Where(q => q.num == num).FirstOrDefault(); //刪除該筆資料
if (prod != null)
{
_db.activity_category_kind.Remove(prod);
@@ -265,7 +265,7 @@ public partial class admin_activity_kind_reg2 : MyWeb.config
public void Del_Ohter_Items(int d_num)
{
var prod = _db.activity_category_kind.AsEnumerable().Where(q => q.root == d_num).ToList();
var prod = _db.activity_category_kind.Where(q => q.root == d_num).ToList();
if (prod.Count > 0)
{
foreach (var row in prod)
@@ -284,7 +284,7 @@ public partial class admin_activity_kind_reg2 : MyWeb.config
public void del_product(int num) //刪除訊息
{
//EF Model 資料庫拉關聯 , 故刪除類型前,一定要先刪除訊息,否則關聯會出錯
var prod = _db.activities.AsEnumerable().Where(q => q.category_kind == num).ToList();
var prod = _db.activities.Where(q => q.category_kind == num).ToList();
if (prod.Count > 0)
{

View File

@@ -30,7 +30,7 @@ public partial class admin_bed_kind_reg : MyWeb.config
{
_this_id = ValString(Request["num"]);
int _num = Val(Request["num"]);
var prod = _db.bed_kind.AsEnumerable().Where(q => q.num == _num).FirstOrDefault();
var prod = _db.bed_kind.Where(q => q.num == _num).FirstOrDefault();
if (prod != null)
{
@@ -250,7 +250,7 @@ public partial class admin_bed_kind_reg : MyWeb.config
try
{
var prod = _db.bed_kind.AsEnumerable().Where(q => q.root == root).OrderByDescending(q => q.range).FirstOrDefault();
var prod = _db.bed_kind.Where(q => q.root == root).OrderByDescending(q => q.range).FirstOrDefault();
if (prod != null)
if (prod.range.HasValue)
range = prod.range.Value + 1;
@@ -293,7 +293,7 @@ public partial class admin_bed_kind_reg : MyWeb.config
{
int num = Val(Request["num"]);
del_product(num);
var prod = _db.bed_kind.AsEnumerable().Where(q => q.num == num).FirstOrDefault(); //刪除該筆資料
var prod = _db.bed_kind.Where(q => q.num == num).FirstOrDefault(); //刪除該筆資料
if (prod != null)
{
_db.bed_kind.Remove(prod);
@@ -310,7 +310,7 @@ public partial class admin_bed_kind_reg : MyWeb.config
public void Del_Ohter_Items(int d_num)
{
var prod = _db.bed_kind.AsEnumerable().Where(q => q.root == d_num).ToList();
var prod = _db.bed_kind.Where(q => q.root == d_num).ToList();
if (prod.Count > 0)
{
foreach (var row in prod)
@@ -327,14 +327,14 @@ public partial class admin_bed_kind_reg : MyWeb.config
public void del_product(int num)
{
//床位資料
var prod = _db.bed_kind_detail.AsEnumerable().Where(q => q.bed_kind_id == num).ToList();
var prod = _db.bed_kind_detail.Where(q => q.bed_kind_id == num).ToList();
if (prod.Count > 0)
{
//清空分類
foreach (var item in prod)
{
//掛單資料
var prod2 = _db.bed_order_detail.AsEnumerable().Where(q => q.bed_kind_detail_id == item.num).ToList();
var prod2 = _db.bed_order_detail.Where(q => q.bed_kind_detail_id == item.num).ToList();
if (prod2.Count > 0)
{
//清空分類
@@ -349,7 +349,7 @@ public partial class admin_bed_kind_reg : MyWeb.config
}
//掛單資料
var prod3 = _db.bed_order_detail.AsEnumerable().Where(q => q.bed_kind1 == num || q.bed_kind2 == num).ToList();
var prod3 = _db.bed_order_detail.Where(q => q.bed_kind1 == num || q.bed_kind2 == num).ToList();
if (prod3.Count > 0)
{
//清空分類

View File

@@ -21,7 +21,7 @@ public partial class admin_news_kind_reg : MyWeb.config
if (!isStrNull(Request["num"]))
{
int _num = Val(Request["num"]);
var prod = _db.news_kind.AsEnumerable().Where(q => q.num == _num).OrderBy(q=>q.kind).FirstOrDefault();
var prod = _db.news_kind.Where(q => q.num == _num).OrderBy(q=>q.kind).FirstOrDefault();
if (prod != null)
{
@@ -214,7 +214,7 @@ public partial class admin_news_kind_reg : MyWeb.config
try
{
var prod = _db.news_kind.AsEnumerable().Where(q => q.root == root).OrderByDescending(q => q.range).FirstOrDefault();
var prod = _db.news_kind.Where(q => q.root == root).OrderByDescending(q => q.range).FirstOrDefault();
if (prod != null)
if (prod.range.HasValue)
range = prod.range.Value + 1;
@@ -255,7 +255,7 @@ public partial class admin_news_kind_reg : MyWeb.config
del_product(num);
var prod = _db.news_kind.AsEnumerable().Where(q => q.num == num).FirstOrDefault(); //刪除該筆資料
var prod = _db.news_kind.Where(q => q.num == num).FirstOrDefault(); //刪除該筆資料
if (prod != null)
{
_db.news_kind.Remove(prod);
@@ -273,7 +273,7 @@ public partial class admin_news_kind_reg : MyWeb.config
public void Del_Ohter_Items(int d_num)
{
var prod = _db.news_kind.AsEnumerable().Where(q => q.root == d_num).ToList();
var prod = _db.news_kind.Where(q => q.root == d_num).ToList();
if (prod.Count > 0)
{
foreach (var row in prod)
@@ -292,7 +292,7 @@ public partial class admin_news_kind_reg : MyWeb.config
public void del_product(int num) //刪除訊息
{
//EF Model 資料庫拉關聯 , 故刪除分類前,一定要先刪除訊息,否則關聯會出錯
var prod = _db.news.AsEnumerable().Where(q => q.kind == num).ToList();
var prod = _db.news.Where(q => q.kind == num).ToList();
if (prod.Count > 0)
{
////刪除檔案

View File

@@ -21,7 +21,7 @@ public partial class admin_project_kind_reg : MyWeb.config
if (!isStrNull(Request["num"]))
{
int _num = Val(Request["num"]);
var prod = _db.project_kind.AsEnumerable().Where(q => q.num == _num).OrderBy(q => q.kind).FirstOrDefault();
var prod = _db.project_kind.Where(q => q.num == _num).OrderBy(q => q.kind).FirstOrDefault();
if (prod != null)
{
@@ -210,7 +210,7 @@ public partial class admin_project_kind_reg : MyWeb.config
try
{
var prod = _db.project_kind.AsEnumerable().Where(q => q.root == root).OrderByDescending(q => q.range).FirstOrDefault();
var prod = _db.project_kind.Where(q => q.root == root).OrderByDescending(q => q.range).FirstOrDefault();
if (prod != null)
if (prod.range.HasValue)
range = prod.range.Value + 1;
@@ -248,7 +248,7 @@ public partial class admin_project_kind_reg : MyWeb.config
int num = Val(Request["num"]);
del_product(num);
var prod = _db.project_kind.AsEnumerable().Where(q => q.num == num).FirstOrDefault(); //刪除該筆資料
var prod = _db.project_kind.Where(q => q.num == num).FirstOrDefault(); //刪除該筆資料
if (prod != null)
{
_db.project_kind.Remove(prod);
@@ -265,7 +265,7 @@ public partial class admin_project_kind_reg : MyWeb.config
public void Del_Ohter_Items(int d_num)
{
var prod = _db.project_kind.AsEnumerable().Where(q => q.root == d_num).ToList();
var prod = _db.project_kind.Where(q => q.root == d_num).ToList();
if (prod.Count > 0)
{
foreach (var row in prod)
@@ -283,7 +283,7 @@ public partial class admin_project_kind_reg : MyWeb.config
public void del_product(int num)
{
var prod = _db.projects.AsEnumerable().Where(q => q.kind == num).ToList();
var prod = _db.projects.Where(q => q.kind == num).ToList();
if (prod.Count > 0)
{
////查詢結果全部刪除

View File

@@ -21,7 +21,7 @@ public partial class admin_stock_kind_reg : MyWeb.config
if (!isStrNull(Request["num"]))
{
int _num = Val(Request["num"]);
var prod = _db.stock_kind.AsEnumerable().Where(q => q.num == _num).OrderBy(q => q.kind).FirstOrDefault();
var prod = _db.stock_kind.Where(q => q.num == _num).OrderBy(q => q.kind).FirstOrDefault();
if (prod != null)
{
@@ -210,7 +210,7 @@ public partial class admin_stock_kind_reg : MyWeb.config
try
{
var prod = _db.stock_kind.AsEnumerable().Where(q => q.root == root).OrderByDescending(q => q.range).FirstOrDefault();
var prod = _db.stock_kind.Where(q => q.root == root).OrderByDescending(q => q.range).FirstOrDefault();
if (prod != null)
if (prod.range.HasValue)
range = prod.range.Value + 1;
@@ -248,7 +248,7 @@ public partial class admin_stock_kind_reg : MyWeb.config
int num = Val(Request["num"]);
del_product(num);
var prod = _db.stock_kind.AsEnumerable().Where(q => q.num == num).FirstOrDefault(); //刪除該筆資料
var prod = _db.stock_kind.Where(q => q.num == num).FirstOrDefault(); //刪除該筆資料
if (prod != null)
{
_db.stock_kind.Remove(prod);
@@ -266,7 +266,7 @@ public partial class admin_stock_kind_reg : MyWeb.config
public void Del_Ohter_Items(int d_num)
{
var prod = _db.stock_kind.AsEnumerable().Where(q => q.root == d_num).ToList();
var prod = _db.stock_kind.Where(q => q.root == d_num).ToList();
if (prod.Count > 0)
{
foreach (var row in prod)
@@ -285,7 +285,7 @@ public partial class admin_stock_kind_reg : MyWeb.config
public void del_product(int num)
{
var prod = _db.stocks.AsEnumerable().Where(q => q.kind == num).ToList();
var prod = _db.stocks.Where(q => q.kind == num).ToList();
if (prod.Count > 0)
{
////查詢結果全部刪除

View File

@@ -21,7 +21,7 @@ public partial class admin_supplier_kind_reg : MyWeb.config
if (!isStrNull(Request["num"]))
{
int _num = Val(Request["num"]);
var prod = _db.supplier_kind.AsEnumerable().Where(q => q.num == _num).OrderBy(q => q.kind).FirstOrDefault();
var prod = _db.supplier_kind.Where(q => q.num == _num).OrderBy(q => q.kind).FirstOrDefault();
if (prod != null)
{
@@ -210,7 +210,7 @@ public partial class admin_supplier_kind_reg : MyWeb.config
try
{
var prod = _db.supplier_kind.AsEnumerable().Where(q => q.root == root).OrderByDescending(q => q.range).FirstOrDefault();
var prod = _db.supplier_kind.Where(q => q.root == root).OrderByDescending(q => q.range).FirstOrDefault();
if (prod != null)
if (prod.range.HasValue)
range = prod.range.Value + 1;
@@ -248,7 +248,7 @@ public partial class admin_supplier_kind_reg : MyWeb.config
int num = Val(Request["num"]);
//del_product(num);
var prod = _db.supplier_kind.AsEnumerable().Where(q => q.num == num).FirstOrDefault(); //刪除該筆資料
var prod = _db.supplier_kind.Where(q => q.num == num).FirstOrDefault(); //刪除該筆資料
if (prod != null)
{
_db.supplier_kind.Remove(prod);
@@ -266,7 +266,7 @@ public partial class admin_supplier_kind_reg : MyWeb.config
public void Del_Ohter_Items(int d_num)
{
var prod = _db.supplier_kind.AsEnumerable().Where(q => q.root == d_num).ToList();
var prod = _db.supplier_kind.Where(q => q.root == d_num).ToList();
if (prod.Count > 0)
{
foreach (var row in prod)
@@ -285,7 +285,7 @@ public partial class admin_supplier_kind_reg : MyWeb.config
public void del_product(int num)
{
var prod = _db.suppliers.AsEnumerable().Where(q => q.kind == num).ToList();
var prod = _db.suppliers.Where(q => q.kind == num).ToList();
if (prod.Count > 0)
{
////查詢結果全部刪除

View File

@@ -0,0 +1,28 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="test_asenumerable_check.aspx.cs" Inherits="test_asenumerable_check" %>
<!DOCTYPE html>
<html>
<head>
<title>AsEnumerable 修改檢測工具</title>
<style>
body { font-family: 'Consolas', monospace; margin: 20px; background: #1e1e1e; color: #d4d4d4; }
.success { color: #4ec9b0; font-weight: bold; }
.error { color: #f48771; font-weight: bold; }
.warning { color: #dcdcaa; font-weight: bold; }
.sql-box { background: #252526; padding: 15px; margin: 10px 0; border-left: 4px solid #007acc; }
.test-item { margin: 20px 0; padding: 15px; background: #2d2d30; border-radius: 4px; }
h2 { color: #4ec9b0; }
h3 { color: #dcdcaa; margin-top: 20px; }
pre { white-space: pre-wrap; word-wrap: break-word; }
</style>
</head>
<body>
<h1>🔍 AsEnumerable 修改檢測報告</h1>
<form runat="server">
<asp:Button ID="btnRunTest" runat="server" Text="▶ 執行檢測" OnClick="btnRunTest_Click"
style="padding: 10px 20px; font-size: 16px; cursor: pointer;" />
<hr />
<asp:Literal ID="litResult" runat="server"></asp:Literal>
</form>
</body>
</html>

View File

@@ -0,0 +1,346 @@
using System;
using System.Text;
using System.Diagnostics;
using System.Linq;
using Model;
public partial class test_asenumerable_check : System.Web.UI.Page
{
private StringBuilder output = new StringBuilder();
private int passCount = 0;
private int failCount = 0;
private int warnCount = 0;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
litResult.Text = "<p style='color:#888;'>點擊「執行檢測」開始測試修改結果</p>";
}
}
protected void btnRunTest_Click(object sender, EventArgs e)
{
output.Clear();
passCount = 0;
failCount = 0;
warnCount = 0;
output.AppendLine("<div style='margin-bottom: 20px;'>");
output.AppendLine($"<p>測試時間: {DateTime.Now:yyyy-MM-dd HH:mm:ss}</p>");
output.AppendLine("</div>");
// 執行所有測試
TestAccountingKind();
TestActivityKind();
TestFollowers();
TestMembers();
TestOrders();
// 顯示總結
output.AppendLine("<hr />");
output.AppendLine("<h2>📊 測試總結</h2>");
output.AppendLine($"<p class='success'>✅ 通過: {passCount} 項</p>");
output.AppendLine($"<p class='error'>❌ 失敗: {failCount} 項</p>");
output.AppendLine($"<p class='warning'>⚠️ 警告: {warnCount} 項</p>");
if (failCount == 0)
{
output.AppendLine("<h3 class='success'>🎉 所有測試通過!修改成功!</h3>");
}
else
{
output.AppendLine("<h3 class='error'>⚠️ 發現問題,請檢查失敗的項目</h3>");
}
litResult.Text = output.ToString();
}
private void TestAccountingKind()
{
output.AppendLine("<h3>測試 1: accounting_kind 查詢優化</h3>");
using (var db = new ezEntities())
{
var sqlLog = new StringBuilder();
db.Database.Log = sql => sqlLog.AppendLine(sql);
try
{
// 測試 1.1: 單筆查詢
sqlLog.Clear();
var sw = Stopwatch.StartNew();
var result = db.accounting_kind.Where(q => q.num == 1).FirstOrDefault();
sw.Stop();
CheckQuery("單筆查詢 (Where + FirstOrDefault)",
sqlLog.ToString(),
sw.ElapsedMilliseconds,
shouldHaveWhere: true,
shouldHaveSelectAll: false,
maxTime: 50);
// 測試 1.2: 檢查子資料 (應該用 Any)
sqlLog.Clear();
sw.Restart();
var hasChildren = db.accounting_kind.Any(q => q.root == 1);
sw.Stop();
CheckQuery("檢查子資料存在 (Any)",
sqlLog.ToString(),
sw.ElapsedMilliseconds,
shouldHaveWhere: true,
shouldHaveExists: true,
maxTime: 30);
// 測試 1.3: 取得子資料清單
sqlLog.Clear();
sw.Restart();
var children = db.accounting_kind.Where(q => q.root == 1).ToList();
sw.Stop();
CheckQuery("取得子資料清單 (Where + ToList)",
sqlLog.ToString(),
sw.ElapsedMilliseconds,
shouldHaveWhere: true,
shouldHaveSelectAll: false,
maxTime: 100);
}
catch (Exception ex)
{
LogError($"accounting_kind 測試失敗: {ex.Message}");
}
}
}
private void TestActivityKind()
{
output.AppendLine("<h3>測試 2: activity_kind 查詢優化</h3>");
using (var db = new ezEntities())
{
var sqlLog = new StringBuilder();
db.Database.Log = sql => sqlLog.AppendLine(sql);
try
{
// 單筆查詢 + 排序
sqlLog.Clear();
var sw = Stopwatch.StartNew();
var result = db.activity_kind
.Where(q => q.num == 1)
.OrderBy(q => q.kind)
.FirstOrDefault();
sw.Stop();
CheckQuery("單筆查詢 + 排序 (Where + OrderBy + FirstOrDefault)",
sqlLog.ToString(),
sw.ElapsedMilliseconds,
shouldHaveWhere: true,
shouldHaveOrderBy: true,
maxTime: 50);
}
catch (Exception ex)
{
LogError($"activity_kind 測試失敗: {ex.Message}");
}
}
}
private void TestFollowers()
{
output.AppendLine("<h3>測試 3: followers 查詢優化</h3>");
using (var db = new ezEntities())
{
var sqlLog = new StringBuilder();
db.Database.Log = sql => sqlLog.AppendLine(sql);
try
{
// 測試字串查詢 (Contains)
sqlLog.Clear();
var sw = Stopwatch.StartNew();
var result = db.followers
.Where(q => q.f_number.Contains("A"))
.Take(10)
.ToList();
sw.Stop();
CheckQuery("字串查詢 (Contains)",
sqlLog.ToString(),
sw.ElapsedMilliseconds,
shouldHaveWhere: true,
shouldHaveLike: true,
maxTime: 100);
}
catch (Exception ex)
{
LogError($"followers 測試失敗: {ex.Message}");
}
}
}
private void TestMembers()
{
output.AppendLine("<h3>測試 4: members 查詢優化</h3>");
using (var db = new ezEntities())
{
var sqlLog = new StringBuilder();
db.Database.Log = sql => sqlLog.AppendLine(sql);
try
{
// 測試批次查詢
var ids = new[] { 1, 2, 3 };
sqlLog.Clear();
var sw = Stopwatch.StartNew();
var result = db.members.Where(q => ids.Contains(q.num)).ToList();
sw.Stop();
CheckQuery("批次 ID 查詢 (Contains)",
sqlLog.ToString(),
sw.ElapsedMilliseconds,
shouldHaveWhere: true,
shouldHaveIn: true,
maxTime: 100);
}
catch (Exception ex)
{
LogError($"members 測試失敗: {ex.Message}");
}
}
}
private void TestOrders()
{
output.AppendLine("<h3>測試 5: pro_order_detail 聚合查詢</h3>");
using (var db = new ezEntities())
{
var sqlLog = new StringBuilder();
db.Database.Log = sql => sqlLog.AppendLine(sql);
try
{
// 測試 Count
sqlLog.Clear();
var sw = Stopwatch.StartNew();
var count = db.pro_order_detail.Count(q => q.num > 0);
sw.Stop();
CheckQuery("Count 查詢",
sqlLog.ToString(),
sw.ElapsedMilliseconds,
shouldHaveWhere: true,
shouldHaveCount: true,
maxTime: 50);
}
catch (Exception ex)
{
LogError($"pro_order_detail 測試失敗: {ex.Message}");
}
}
}
private void CheckQuery(string testName, string sql, long milliseconds,
bool shouldHaveWhere = false,
bool shouldHaveSelectAll = false,
bool shouldHaveExists = false,
bool shouldHaveOrderBy = false,
bool shouldHaveLike = false,
bool shouldHaveIn = false,
bool shouldHaveCount = false,
long maxTime = 100)
{
output.AppendLine("<div class='test-item'>");
output.AppendLine($"<h4>🔸 {testName}</h4>");
output.AppendLine($"<p>執行時間: {milliseconds}ms</p>");
bool passed = true;
var issues = new StringBuilder();
// 檢查是否有 WHERE 條件
if (shouldHaveWhere && !sql.Contains("WHERE"))
{
issues.AppendLine("❌ 缺少 WHERE 條件(可能載入整表)<br/>");
passed = false;
}
// 檢查是否有不當的 SELECT *
if (!shouldHaveSelectAll && sql.Contains("SELECT") && !sql.Contains("WHERE") && !sql.Contains("TOP"))
{
issues.AppendLine("❌ SELECT 沒有條件限制(載入整表)<br/>");
passed = false;
}
// 檢查是否使用 EXISTSAny 應該產生)
if (shouldHaveExists && !sql.Contains("EXISTS"))
{
issues.AppendLine("⚠️ 建議使用 EXISTS 而非載入資料<br/>");
warnCount++;
}
// 檢查是否有 ORDER BY
if (shouldHaveOrderBy && !sql.Contains("ORDER BY"))
{
issues.AppendLine("❌ 缺少 ORDER BY排序應該在資料庫執行<br/>");
passed = false;
}
// 檢查是否有 LIKEContains 應該產生)
if (shouldHaveLike && !sql.Contains("LIKE"))
{
issues.AppendLine("❌ 字串查詢未轉為 LIKE<br/>");
passed = false;
}
// 檢查是否有 IN批次查詢應該產生
if (shouldHaveIn && !sql.Contains("IN"))
{
issues.AppendLine("❌ 批次查詢未轉為 IN<br/>");
passed = false;
}
// 檢查是否有 COUNT聚合函數應該在資料庫執行
if (shouldHaveCount && !sql.Contains("COUNT"))
{
issues.AppendLine("❌ COUNT 未在資料庫執行<br/>");
passed = false;
}
// 檢查執行時間
if (milliseconds > maxTime)
{
issues.AppendLine($"⚠️ 執行時間較長 (>{maxTime}ms),可能仍有優化空間<br/>");
warnCount++;
}
if (passed)
{
output.AppendLine("<p class='success'>✅ 測試通過</p>");
passCount++;
}
else
{
output.AppendLine("<p class='error'>❌ 測試失敗</p>");
output.AppendLine($"<div style='color:#f48771;'>{issues}</div>");
failCount++;
}
// 顯示 SQL
output.AppendLine("<div class='sql-box'>");
output.AppendLine("<strong>產生的 SQL:</strong><br/>");
output.AppendLine($"<pre>{System.Web.HttpUtility.HtmlEncode(sql)}</pre>");
output.AppendLine("</div>");
output.AppendLine("</div>");
}
private void LogError(string message)
{
output.AppendLine($"<p class='error'>❌ {message}</p>");
failCount++;
}
}