【问题标题】:Entity Framework - Parameter Not Supplied?实体框架 - 未提供参数?
【发布时间】:2015-11-11 07:22:39
【问题描述】:

我正在使用实体框架对 SQL 存储过程执行 NonQuery。

它所抱怨的属性对于这条记录确实为空,但是我的存储过程将它定义为一个可为空的参数。

为什么抱怨这个?

SQL 过程定义:

【问题讨论】:

  • 我看不到屏幕截图,但您通常在设置参数值时使用DBNull.Value 而不是null
  • 解决了,谢谢。我创建了一个对象,如果它为空,则将该对象设置为 DbNull.Value,否则将其设置为属性值。

标签: c# entity-framework


【解决方案1】:

D Stanley 在 cmets 中有正确答案。

你不能将null传递给SqlParameter,你需要传递DbNull.Value

所以:

object comments = detail.ReferralComments;

if (comments == null) {
    comments = DBNull.Value;
} else {
    comments = detail.ReferralComments;
}

db.Database.ExecuteSqlCommand("EXEC dbo.Dual_SaveReferral @quoteGuid, @referralTypeID, @comments",
    new SqlParameter("@quoteGuid", detail.QuoteGuid),
    new SqlParameter("@referralTypeID", detail.ReferralTypeID),
    new SqlParameter("@comments", comments));
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-28
    • 1970-01-01
    相关资源
    最近更新 更多