我有一个MVC应用程序,我刚刚更新了我的模型,现在我收到了这个奇怪的错误消息,我无法弄明白。我所做的就是更新模型并保存它,所以有些东西已经更新了。
错误是:
'int' does not contain a definition for 'ToArray' and no extension method 'ToArray' accepting a first argument of type 'int' could be found
以下是导致错误的行:
viewMaster.properties = _dbLazy.spPropertyByBuildingLookup(propString, null).ToArray();
这是spPropertyByBuildingLookup方法(当然,它基于同名的SP):
public virtual int spPropertyByBuildingLookup(string propertyInclude, string propertyExclude)
{
var propertyIncludeParameter = propertyInclude != null ?
new ObjectParameter("propertyInclude", propertyInclude) :
new ObjectParameter("propertyInclude", typeof(string));
var propertyExcludeParameter = propertyExclude != null ?
new ObjectParameter("propertyExclude", propertyExclude) :
new ObjectParameter("propertyExclude", typeof(string));
return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction("spPropertyByBuildingLookup", propertyIncludeParameter, propertyExcludeParameter);
}
答案 0 :(得分:0)
所以,基本上我最终做的就是将Model恢复到原来的状态(我们使用GitHub进行源代码控制)。发生的事情是,我将属性表中的字段从varchar更新为bit。我不得不从模型中删除表并重新添加它。当我这样做时,它默认spPropertyByBuildingLookup方法返回一个int(它必须删除对已删除的Property模型的引用)。我通过进入CBA.Context.cs文件后找到了这个,然后它被还原以查看发生了什么变化。