首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实体框架和存储的PRocedures,如何删除可为空的参数

实体框架和存储的PRocedures,如何删除可为空的参数
EN

Stack Overflow用户
提问于 2011-06-08 00:46:36
回答 1查看 464关注 0票数 0

我一直在使用Model-First和DbSet代码生成。现在我想要做的是添加一些存储过程。

但是我得到的代码是这样的:

代码语言:javascript
复制
        public virtual ObjectResult<Nullable<int>> CountPostsInThread(Nullable<int> threadID, ObjectParameter postCount)
    {
        var threadIDParameter = threadID.HasValue ?
            new ObjectParameter("threadID", threadID) :
            new ObjectParameter("threadID", typeof(int));

        return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<Nullable<int>>("CountPostsInThread", threadIDParameter, postCount);
    }

现在,我该如何摆脱所有这些呢?是tt文件有问题,还是我的存储过程有问题?SP:

代码语言:javascript
复制
ALTER PROCEDURE dbo.sp_CountPostsInThread
(
    @threadID int,
    @PostCount int = 0 OUTPUT
)   
AS
    SELECT COUNT(*)
    FROM PostSet
    WHERE PostSet.ThreadID = @threadID 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-08 04:04:24

模板或存储过程没有任何错误。SP的参数接受空值,因此EF使它们可以为空。之所以使用三元运算符,是因为如果传递null,EF必须以某种方式传递null参数类型,以正确设置内部使用的SqlParameter

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6268708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档