-
Notifications
You must be signed in to change notification settings - Fork 0
/
DemoDataService.cs
66 lines (56 loc) · 2.08 KB
/
DemoDataService.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
using MasterLinqDetail.Entities;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MasterLinqDetail
{
public class DemoDataService
{
#region Fields
private DemoDBEntities db = new DemoDBEntities();
#endregion
#region 針對單一個 Material,找出已選取的 MSHAPE
public List<MSHAPE> GetShapesWithLazyLoading(int materialId)
{
db.Configuration.ProxyCreationEnabled = true;
var collection = db.MATERIAL.Find(materialId).MSHAPE;
return new List<MSHAPE>(collection);
}
public List<MSHAPE> GetShapesWithoutLazyLoading(int materialId)
{
db.Configuration.ProxyCreationEnabled = false;
var collection = db.MATERIAL.Include("MSHAPE")
.FirstOrDefault(r=>r.ID==materialId).MSHAPE;
return new List<MSHAPE>(collection);
}
#endregion
#region 針對單一個 Material,找出尚未選取的 MSHAPE
public List<MSHAPE> GetUnselectedShapesWithLazyLoading(int materialId)
{
db.Configuration.ProxyCreationEnabled = true;
var result = (from q in db.MSHAPE
where !(
db.MATERIAL.Where(m => m.ID.Equals(materialId)).FirstOrDefault()
.MSHAPE.Any(s => s.ID == q.ID)
)
select q
);
return new List<MSHAPE>(result);
}
public List<MSHAPE> GetUnselectedShapesWithoutLazyLoading(int materialId)
{
db.Configuration.ProxyCreationEnabled = false;
var result = (from q in db.MSHAPE
where !(
db.MATERIAL.Where(m => m.ID.Equals(materialId)).FirstOrDefault()
.MSHAPE.Any(s => s.ID == q.ID)
)
select q
);
return new List<MSHAPE>(result);
}
#endregion
}
}