DataContext.Entity против DataContext.GetTable <Entity> - PullRequest
0 голосов
/ 03 августа 2010

Я реализую «шаблон» репозитория в моем приложении ASP.NET MVC. Поэтому я немного читал, чтобы решить, должен ли я предоставлять весь DataContext (инициализировать его в конструкторе) или только таблицу с помощью .GetTable , когда производительность является наиболее важным фактором.

Выполняя поиск, я наткнулся на следующий код на http://www.codeguru.com/csharp/csharp/net30/article.php/c13799.. В этом коде он сначала вынимает таблицу, а затем запрашивает этот объект. Так что теперь я задаюсь вопросом, есть ли преимущество этого метода.

public void PrintWinners()
{
   // creates a data context that takes the path of the database
   DataContext dc = new DataContext(@"C:\Program Files\
      Microsoft SQL Server\MSSQL.1\MSSQL\Data\UCL.mdf");

   // retrieves a Table of Winner
   Table<Winner> winners = dc.GetTable<Winner>();

   // creates a sequence of winners ordered descending by the
   // winning year
   var result = from w in winners
                orderby w.Year descending
                select w;

   // prints the sequence of winners
   foreach (var w in result)
   {
      Console.WriteLine("{0} {1}, {2}",
      w.Year, w.Name, w.Country);
   }
}

1 Ответ

1 голос
/ 03 августа 2010

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

DataContext.GetTable<Entity>

DataContext.EntityName генерируется стандартными шаблонами t4 и является наименее расширяемым вариантом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...