存储过程未出现在 EF 代码中
Posted
技术标签:
【中文标题】存储过程未出现在 EF 代码中【英文标题】:Stored procedure not appearing in EF code 【发布时间】:2012-06-25 13:16:33 【问题描述】:我首先使用的是 EF 数据库,并向数据库添加了一个存储过程。
当我在 edmx 文件上运行 Update model from database
时,它获取了存储过程,我选择了它作为我想要包含的项目。
我有一个名为Model<projectname>.Context.cs
的文件,其中有一个名为Entities
的类。这是一个自动生成的类,它包含系统中其他存储过程的方法。我的新存储过程在此类中没有相应的方法,运行Run custom tool
也无济于事。
还有什么我需要做但我没有做的事情吗?
谢谢,
萨钦
【问题讨论】:
【参考方案1】:EDMX 不支持表值参数。因此,如果您的 proc 使用 TVP 作为参数,则 EDMX 设计人员无法选择它。
已编辑:
如果您想检索结果集并为 proc 创建 object/POCO,那么只需删除 tvp,编译 proc,让 EDMX 设计人员获取您的 proc,生成结果对象,然后添加 tvp回到你的过程。这是欺骗 EDMX 设计人员并获得所需内容的一种非常简单的方法。
【讨论】:
【参考方案2】:确保您正在对 *Model.CONTEXT.tt 文件执行“运行自定义工具”。
【讨论】:
以上是关于存储过程未出现在 EF 代码中的主要内容,如果未能解决你的问题,请参考以下文章