Ответы пользователя по тегу Entity Framework
  • Как использовать data annotations в c# web api?

    yamaoto
    @yamaoto
    la programmeur
    Как вариант можно пометить класс как [DataContract], на нужные поля выставить DataMember, и ничем не помечать поля которые должны быть невидимыми (ну или для наглядности пометить IgnoreDataMember)
    Ответ написан
  • Entity framework связь parrent children в одной таблице

    yamaoto
    @yamaoto
    la programmeur
    А если попробовать так?
    public class Payment 
        {
                [Key]
               public int doc_number{ get; set; }
    		
    	   public int? parrent_doc_number{ get; set; }
    	   public virtual Payment parrent { get; set; }
    или
     public virtual Payment parrent_ { get; set; }
               public virtual ICollection ChildPayments { get; set; } 
        }


    Как я помню, EF сперва ищет navigation property основываясь на имени типа и его pk
    если не находит соответствия то смотрит на имя поля и опять же pk

    в обоих случаях он соединяет имя navigation property и имя pk либо слитно, либо через нижнюю подчеркивающую черту...
    Ответ написан
    Комментировать
  • Как правильно выполнить корреляцию вычисляемого поля модели Entity Framework?

    yamaoto
    @yamaoto
    la programmeur
    Реализовать в виде хелпера?
    public static class Helper{
    public static int? GetWorkingTime(this MyContext context){
    var query = (from e in context.events
                                     join a in context.actions on e.CurrEventID equals a.CurrEventID into es
                                     from p in es.DefaultIfEmpty()
                                     select new { UnitDate = e.ActionDate, UnitId = e.CurrEventID, HeaderID = p.HeaderID, IsDone = p.MarkerOn, Begin = e.BeginTime, End = e.EndTime })
                                    .Where(w => w.HeaderID == this.HeaderID)
                                    .Where(w => w.IsDone == true && w.Begin<w.UnitDate && w.UnitDate<w.End )
                                    .Distinct()
                                    .Select(s =>  DbFunctions.DiffMinutes(s.Begin, s.End)).Sum();
                        return query ?? 0;
    }
    }
    Ответ написан
    Комментировать