看起来GetObjectKey有一个好处,它可以搜索已经存在的实例化对象,然后再搜索数据存储。但是,似乎你会失去一些强类型,并且需要转换你的结果对象:
GetObjectKey
int customerID = 1;
EntityKey key = new EntityKey("MyEntities.Customers", "CustomerID", customerID);
Customer customer = context.GetObjectByKey(key) as Customer;
vs. LINQ
int customerID = 1;
Customer customer = (from c in context.Customers
where c.CustomerID = customerID
select c).FirstOrDefault();
个人而言,我更倾向于后一种方法,因为它更加简洁。此外,使用后一种方法编写的数据访问层(DAL)在所有Get方法中都是查询语句,尽管这只是个人偏好。
你们这些男孩和女孩用什么方法呢?