Joh*_*ski 8 c# linq asp.net entity-framework
看起来GetObjectKey具有搜索现有的实例化对象以及数据存储的好处.但是,它似乎也失去了一些强类型,并且需要转换生成的对象:
GetObjectKey
int customerID = 1;
EntityKey key = new EntityKey("MyEntities.Customers", "CustomerID", customerID);
Customer customer = context.GetObjectByKey(key) as Customer;
Run Code Online (Sandbox Code Playgroud)
与LINQ
int customerID = 1;
Customer customer = (from c in context.Customers
where c.CustomerID = customerID
select c).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
就个人而言,由于打字,我更喜欢后一种方法.此外,您的DAL将相当统一,所有Get方法都是查询,尽管这只是个人偏好.
你们男孩和女孩用的是什么?
我更喜欢后者,因为它明确清楚你想要什么.通过使用EntityKey(这是ADO.NET团队似乎无法理解的东西),我们必须解决Entity Framework强加给我们的结构.通过在第二个示例中使用查询语言,我们告诉所有其他开发人员,他们将查看我们的代码,嘿,我们只是希望这个对象具有此ID或我们想要null.
我不认为这是正确的(正如你在第一个例子中所说的那样)是一个不向同事说清楚的借口.:)