Похоже, что GetObjectKey обладает преимуществом поиска существующих, созданных экземпляров объектов и, затем, хранилища данных. Тем не менее, также кажется, что вы потеряли некоторую строгую типизацию, и вам нужно разыграть получившийся объект:
GetObjectKey
int customerID = 1;
EntityKey key = new EntityKey("MyEntities.Customers", "CustomerID", customerID);
Customer customer = context.GetObjectByKey(key) as Customer;
против. LINQ
int customerID = 1;
Customer customer = (from c in context.Customers
where c.CustomerID = customerID
select c).FirstOrDefault();
Лично я предпочитаю последний метод из-за набора текста. Кроме того, ваш DAL будет довольно единообразным, так как все методы Get являются запросами, хотя это всего лишь личное предпочтение.
Что вы, мальчики и девочки, используете?