【问题标题】:Entity Framework and Stored PRocedures, how to remove Nullable paremeters实体框架和存储过程,如何删除可空参数
【发布时间】:2011-06-08 04:09:55
【问题描述】:

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

但我得到的代码如下:

        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:

ALTER PROCEDURE dbo.sp_CountPostsInThread
(
    @threadID int,
    @PostCount int = 0 OUTPUT
)   
AS
    SELECT COUNT(*)
    FROM PostSet
    WHERE PostSet.ThreadID = @threadID 

【问题讨论】:

  • 你的SP永远不会设置@PostCount
  • 我知道,这是我实验的剩余部分。

标签: sql-server stored-procedures entity-framework-4 entity-framework-4.1


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-30
    • 1970-01-01
    • 2013-03-19
    • 1970-01-01
    • 2012-04-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多