Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class WorkOrder1
- {
- public int Id { get; set; }
- public string Accepter { get; set; }
- public string Foreman { get; set; }
- public string myDate { get; set; }
- public ICollection<GuideWorkTypeStandardHour1> GuideWorkTypeStandardHour1s { get; set; }
- public WorkOrder1()
- {
- GuideWorkTypeStandardHour1s = new List<GuideWorkTypeStandardHour1>();
- }
- }
- public class GuideWorkTypeStandardHour1
- {
- public int Id { get; set; }
- public string CodeWork { get; set; }
- public ICollection<WorkOrder1> WorkOrder1s { get; set; }
- public GuideWorkTypeStandardHour1()
- {
- WorkOrder1s = new List<WorkOrder1>();
- }
- }
- private void button1_Click_1(object sender, EventArgs e)
- {
- WorkOrder1 wo = new WorkOrder1();
- wo.myDate = maskedTextBoxData.Text;
- wo.Accepter = textBoxAccepter.Text;
- wo.Foreman = textBoxForeman.Text;
- wo.BestPractice = textBox4Recommendation.Text;
- db.WorkOrders.Add(wo);
- db.SaveChanges();
- }
- List<GuideWorkTypeStandardHour1> guideWorkTypeStandardHour1;
- WorkOrder1 workOrder1 = db.WorkOrders.Find(ListWorkOrders.workorderselectedId);
- var works = db.GuideWorkTypeStandardHour1s;
- foreach(var w in works)
- {
- if(workOrder1.GuideWorkTypeStandardHour1s.Contains(w))
- {
- guideWorkTypeStandardHour1.Add(w);
- }
- }
- public class WorkOrder1
- {
- public int Id { get; set; }
- public string Accepter { get; set; }
- public string Foreman { get; set; }
- public string myDate { get; set; }
- [ForeignKey("Id")]
- public virtual ICollection<GuideWorkTypeStandardHour1> GuideWorkTypeStandardHour1s { get; set; }
- public WorkOrder1()
- {
- GuideWorkTypeStandardHour1s = new List<GuideWorkTypeStandardHour1>();
- }
- }
- public class GuideWorkTypeStandardHour1
- {
- public int Id { get; set; }
- public string CodeWork { get; set; }
- [ForeignKey("Id")]
- public virtual ICollection<WorkOrder1> WorkOrder1s { get; set; }
- public GuideWorkTypeStandardHour1()
- {
- WorkOrder1s = new List<WorkOrder1>();
- }
- }
- public virtual ICollection<GuideWorkTypeStandardHour1> GuideWorkTypeStandardHour1s { get; set; }
- var order = db.WorkOrder
- .Where(x=>x.Id==512)
- .Include(x=>x.GuideWorkTypeStandardHour1s);
- var order = db.WorkOrder
- .Where(x=>x.Id==512)
- .Include("GuideWorkTypeStandardHour1s");
- [ForeignKey("Id")]
- public virtual ICollection<GuideWorkTypeStandardHour1> GuideWorkTypeStandardHour1s { get; set; }
- public class A {
- public int Id { get; set; }
- public virtual ICollection<B> Bs { get; set; }
- }
- public class B {
- public int Id { get; set; }
- public virtual ICollection<A> As { get; set; }
- }
- public void Connect(A a, B b) {
- if (a.Bs == null) // Проверка на случай отсутствия Lazy Loading
- a.Bs = new List<B>();
- a.Bs.Add(b);
- // И не забыть SaveChanges()
- }
- public void Connect(DbContext ctx, int ida, int idb) {
- var a = new A { Id = ida };
- var b = new B { Id = idb };
- // Если сущности c указанными ключами уже загружены в контекст - тут будет ошибка
- // Постарайтесь, чтобы так не случалось (лучший способ - каждый раз создавать новый контекст)
- ctx.Entry(a).State = EntityState.Unchanged;
- ctx.Entry(b).State = EntityState.Unchanged;
- a.Bs = new [] { b };
- ctx.SaveChanges();
- // Очистка контекста - можно не делать, если контекст больше не будет использоваться
- ctx.Entry(a).State = EntityState.Detached;
- ctx.Entry(b).State = EntityState.Detached;
- }
- public void Disconnect(A a, B b) {
- a.Bs.Remove(b); // Если Lazy Loading выключен и коллекция не загружена - тут будет NPE
- // И не забыть SaveChanges()
- }
- public void Disconnect(DbContext ctx, int ida, int idb) {
- var a = new A { Id = ida };
- var b = new B { Id = idb };
- // Если сущности c указанными ключами уже загружены в контекст - тут будет ошибка
- // Постарайтесь, чтобы так не случалось (лучший способ - каждый раз создавать новый контекст)
- ctx.Entry(a).State = EntityState.Unchanged;
- ctx.Entry(b).State = EntityState.Unchanged;
- ctx.Entry(a).Collection(_ => _.Bs).Load();
- a.Bs.Remove(b);
- ctx.SaveChanges();
- // Чистить контекст тут уже бесполезно. Бросайте его и создавайте новый.
- }
- a.Bs // оно само загрузится
- ctx.Entry(a).Collection(_ => _.Bs).Load()
- a.Bs // теперь загружено
- var q = (from a in ctx.As
- where a.Id = 5
- select a).Include(a => a.Bs)
- var a = new A { Id = ida };
- ctx.Entry(a).State = EntityState.Unchanged;
- ctx.Entry(a).Collection(_ => _.Bs).Load();
- //теперь a.Bs не пусто
- public class A {
- public int Id { get; set; }
- public virtual ICollection<ABLink> ABLinks { get; set; }
- }
- public class B {
- public int Id { get; set; }
- public virtual ICollection<ABLink> ABLinks { get; set; }
- }
- public class ABLink {
- [Key]
- public int AId { get; set; }
- [ForeignKey("AId")]
- public virtual A A { get; set; }
- [Key]
- public int BId { get; set; }
- [ForeignKey("BId")]
- public virtual B B { get; set; }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement