繁体   English   中英

实体框架 - 使用默认参数调用存储过程

[英]Entity Framework - Call stored procedure with default parameters

我使用Database First在Entity Framework中映射了一些存储过程。 它创建强类型方法,您可以调用它们来运行存储过程。 但是,我遇到了一个重大问题,因为我没有看到任何方法来调用它使用存储过程中定义的默认参数创建的这些方法。 这意味着:

a)如果默认参数值要改变,我必须手动将默认参数添加到方法调用中,这是脆弱的。

b)手动写入方法重载。 这基本上消除了首先从数据库生成模型的好处。

有谁知道这个问题是否有更好的解决方案?

谢谢。

截至2013年1月,实体框架没有支持的方法可以做到这一点。

在这里打开了一个功能请求。

这是一个hacky解决方法。 我不知道EF中是否有支持可选参数的功能,但您可以尝试模拟它 - 如果您愿意更改存储过程。

您可以将存储过程的定义中的默认值更改为NULL ,然后在过程的主体中,将NULL参数替换为所需的默认值。 然后从使用EF的代码中,您可以传递null以指示使用默认值。 这样,至少默认值仅在SP本身中定义。

缺点当然包括现在NULL成为“带外”值,这意味着如果你需要的话,你实际上不能将它传递给SP(除了必须改变你的SP并确保所有未来的人都使用这个奇怪的约定)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM