我注意到在Entity Framework设计器中,您可以为插入、更新和删除操作映射存储过程。是否有办法为选择操作执行此操作,还是数据库访问代码的新方向已经不需要编写基本选择操作的存储过程了?
我工作的公司非常坚持始终使用存储过程进行每个数据库操作,即使Entity Framework通过调用sp_executesql使调用变得安全。
似乎LINQ to SQL和Entity Framework都已经摆脱了使用存储过程来选择数据的方式。这是准确的说法吗?
仅澄清我的问题:
我在数据库中有一个名为Product的表。我使用Entity Framework中的向导生成我的模型...所以我现在有一个名为Product的实体。当我执行以下查询时:
它生成类似于以下代码:
当我真正想要做某事时,比如:
如果使用SingleOrDefault无法实现这一点,那也没关系。我更喜欢以下方式:
这是通常会做的事情,还是大多数人只是动态生成SQL语句?
我工作的公司非常坚持始终使用存储过程进行每个数据库操作,即使Entity Framework通过调用sp_executesql使调用变得安全。
似乎LINQ to SQL和Entity Framework都已经摆脱了使用存储过程来选择数据的方式。这是准确的说法吗?
仅澄清我的问题:
我在数据库中有一个名为Product的表。我使用Entity Framework中的向导生成我的模型...所以我现在有一个名为Product的实体。当我执行以下查询时:
db.Products.SingleOrDefault(p => p.Id == 1);
它生成类似于以下代码:
EXEC sp_executesql N'SELECT * FROM Product'
当我真正想要做某事时,比如:
EXEC up_GetProduct @Id = 1
如果使用SingleOrDefault无法实现这一点,那也没关系。我更喜欢以下方式:
db.Products.GetProduct(1);
这是通常会做的事情,还是大多数人只是动态生成SQL语句?