2017-02-15 6 views
0

У меня есть Entity Framework запрос как так -Выбор части объекта в пользовательский объект с детьми объекты

var query = from tbl in db.myTable 
      select new MyModel 
      { 
       id = tbl.id, 
       start = tbl.start, 
       end = tbl.end 
      } 

MyModel является следующим -

public class MyModel 
{ 
    public int id {get; set;} 
    public Range range {get; set;} // contains start and end property 
} 

Есть в любом случае в запросе выберите на карту свойства myTable в range.start и range.end?

Единственный способ я нашел, чтобы получить работу, чтобы добавить дополнительные свойства в модели, как так -

public class MyModel 
{ 
    public int id {get; set;} 
    public string _start {get; set;} 
    public string _end {get; set;} 
    public Range range {get; set;} // contains start and end property 
} 

Затем работает код после того, как запрос был завершен, что карты _start в range.start и _END в диапазон.

Проблема заключается в том, что я предвижу необходимость нанести начало и конец карты на многие пользовательские подмодели от объекта. Мне нужно будет всегда импортировать функцию из общего файла и не забудьте запустить ее после выполнения запроса. Было бы гораздо чище, если бы можно было просто сопоставить их непосредственно в избранных как -

var query = from tbl in db.myTable 
      select new MyModel 
      { 
       id = tbl.id, 
       range.start = tbl.start, 
       range.end = tbl.end 
      } 

или

var query = from tbl in db.myTable 
      select new MyModel 
      { 
       id = tbl.id, 
       range = new Range(tbl.end, tbl.start), 
      } 

ответ

1

Вы имеете в виду, как это?

var query = from tbl in db.myTable 
      select new MyModel 
      { 
       id = tbl.id, 
       range = new Range 
       { 
        start = tbl.start, 
        end = tbl.end 
       } 
      } 
+0

Да, очень простой бит момента «духа». Спасибо за помощь. Подумайте о том, что вы не можете сделать что-то вроде «range = new Range (tbl.end, tbl.start)», это меня немного отбросило. Еще раз спасибо! – user3333134

+0

Добро пожаловать. –