相关疑难解决方法(0)

实体框架和存储过程

我注意到在Entity Framework设计器中,您可以映射Insert,Update和Delete操作的存储过程.有没有办法为Select操作执行此操作,或者是否有新的数据库访问代码方向,我们不再为基本的选择操作编写存储过程了?

我工作的公司非常坚持总是使用存储过程进行每个数据库操作,即使实体框架通过调用sp_executesql使调用安全.

LINQ to SQL和Entity Framework似乎已经不再使用存储过程来选择数据了.这是一个准确的陈述吗?

只是为了澄清我的问题:

我的数据库中有一个名为Product的表.我使用实体框架中的向导来生成我的模型......所以我现在有一个名为Product的实体.当我执行以下查询时:

db.Products.SingleOrDefault(p => p.Id == 1);
Run Code Online (Sandbox Code Playgroud)

它生成的代码类似于:

EXEC sp_executesql N'SELECT * FROM Product'
Run Code Online (Sandbox Code Playgroud)

当我真的想要做的事情:

EXEC up_GetProduct @Id = 1
Run Code Online (Sandbox Code Playgroud)

如果使用SingleOrDefault无法做到这一点,我就可以了.我更愿意拥有以下内容:

db.Products.GetProduct(1);
Run Code Online (Sandbox Code Playgroud)

这是通常完成的事情还是大多数人只是让它动态生成SQL?

c# vb.net stored-procedures entity-framework linq-to-sql

4
推荐指数
1
解决办法
4646
查看次数