public void AddLabelRelation(ILabel label, LabelCauseType cause, string causeDetail = "") { // 注意: labelは、現在のCategoryと同じDBコンテキストを設定してください。 // 追加しようとしているラベル(label)が、このカテゴリにすでに設定済みの場合は、 // 新たに追加せずに、トレースログに追記する。 var r = from u in this.Labels where u.LabelId == label.Id select u; var existsLabel2Category = r.FirstOrDefault(); if (existsLabel2Category == null) { var e2 = new Label2Category { Category = this, Label = (Label)label, Order = 100, // デフォルト値を設定する LastCause = cause }; e2.AddTraceRecord(cause, causeDetail); this.Labels.Add(e2); } else { // labelがすでに登録済みの場合は、TraceRecordを追加してデータを更新する existsLabel2Category.AddTraceRecord(cause, causeDetail); } }
public void AddTraceRecord(LabelCauseType causeType, string detail = "") { var list = GetTraceRecordList(); list.Add(new TraceRecordLogData { CauseType = causeType, CauseDetailText = detail, TraceDate = DateTime.Now }); this.TraceRecord = JsonConvert.SerializeObject(list); }