var
не имеет ничего общего с Entity Framework. Это чистая конструкция C #, позволяющая определять неявно типизированный объект. Это объясняется в документации . По сути, это позволяет компилятору выводить фактический тип переменной с правой стороны присваивания. Это позволяет избежать повторения одного и того же объявления типа дважды. Это также необходимо для анонимных типов, которые не имеют имени. Например:
var foo = new { Id = 123, Name = "anon" };
И это именно то, что происходит в вашем примере. В предложении select вы возвращаете анонимный тип. Таким образом, единственный способ - использовать var
.
В первом примере:
var context = new MHC_CoopEntities();
это эквивалентно:
MHC_CoopEntities context = new MHC_CoopEntities();
потому что мы знаем тип.