2013-03-15 6 views
3

Возможно ли создать объект, который не сопоставляется с таблицей в базе данных?Entity Framework - unmapped entity. Возможное?

Я создал объект (A) с 5 свойствами (имя, телефон, адрес электронной почты, дата, комментарий). В моей базе данных нет таблицы с именем A.

переспросил я другие таблицы в моей модели с помощью LINQ и преобразовать результат в список типа (А)

IList<A> results = new IList<A>(); 
results = (from m in B 
      where m.Id < 10 
      select new { m.name, m.email, m.date, m.phone, m.comment }).ToList(); 
return View(results) 

Я сделал это, чтобы предотвратить прохождение анонимного типа на мой взгляд.

+1

Несопоставленной сущность, в чем польза? Почему бы просто не создать класс? –

+0

Класс? В пятницу мой мозг находится на грани закрытия. Но почему бы не работать без работы? –

+0

Кто-то просто сказал мне, что вместо создания сущности я мог бы создать сложный тип –

ответ

1

Во-первых, поскольку вы назначаете что-то переменной results, вам не нужно создавать новый список. Далее будет работать:

IList<A> results;  // No value yet. 

Тогда вы можете создать экземпляр A так же, как вы могли бы сделать иначе.

results = (from m in B 
      where m.Id < 10 
      select new A(m.name, m.email, m.date, m.phone, m.comment)) 
      .ToList(); 

return View(results) 

Однако, ваше допущение здесь неверно. Вы говорите: Я конвертирую результат в список типа A, чтобы предотвратить передачу анонимного типа моему виду, но ваша идея анонимных типов неверна.

не создать анонимный вид. Это создаст очень unanonymous IEnumerable<A> или IQueryable<A>:

var results = from m in B 
       select new A(); 

Однако следующий будет создать анонимный тип:

var results = from m in B 
       select new { 
        Name = m.name, 
        Email = m.email, 
        Date = m.date, 
        Phone = m.phone, 
        Comment = m.comment 
       }; 
+0

Я думаю, вы могли бы использовать automapper для этого. –

+0

Мой код неправильный. Я набрал это с памятью –

Смежные вопросы