我有理由相信此问题与另一个标题相似的问题不同。
在这种情况下,我得到的值始终为5。我们在数据库上运行了一条跟踪,并返回了VendorId => 12345
,但是EF看到的只是5。
返回的值由SELECT @VendorId 'VendorId'
提供,该值与另一个问题的答案之一一致。我已经删除了存储过程并重新添加了它。我不知道还能做什么。
在命令定义中
return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction("Vendor_Create", vendorJsonParameter, ... (several more JSONs), activeDateParameter, expiryDateParameter, userIdParameter);
尽管运行跟踪并看到确切的调用返回的结果截然不同,但答案始终是5。
编辑:
我发现值是返回的行数。设置NO COUNT ON
,现在返回-1
。当我编辑EF定义时,向导告诉我此函数将不返回值。似乎先读取该函数,然后猜测它将不会返回值。但这是错误的。我认为这可能归结为一些SQL问题。
第二编辑: 强制它返回值是可行的。问题是,当我刷新实体时,它可能会被覆盖。这让我暂时过去了。仍然欢迎任何建议。我假设SQL函数中有一些不返回值的路径。