繁体   English   中英

如何在Entity Framework 4中处理ObjectResult

[英]How to handle ObjectResult in Entity Framework 4

在Entity Framework 4中,当我使用函数import导入存储过程然后使用标量值时,我遇到了问题。 它生成以下代码:

public virtual ObjectResult<Nullable<int>> GetTopEmployee()
{
    return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<Nullable<int>("GetTopEmployee");
}

如何使用此方法的返回值?

例如,此代码工作正常:

NorthwindEntities db = new NorthwindEntities();
var i = db.GetTopEmployee();

但我想仅将返回值用作int。 如果我在函数import中使用返回值为非,则将-1作为输出。

当我尝试下面的代码时:

NorthwindEntities db2 = new NorthwindEntities();
int j = db.GetTopEmployee();

它抛出一个错误说:

无法将类型'System.Data.Objects.ObjectResult'隐式转换为'int'

我如何解析上面的内容?

请注意, GetTopEmployee的返回类型是ObjectResult<Nullable<int>> ObjectResult<T>实现IEnumerable<T>因此您的方法能够返回多个Nullable<int>

我假设您正在尝试为员工获取某种形式的Id。 如果您完全确定只获得一个结果,则可以使用以下代码来获取该ID。

  var topId = db.GetTopEmployee().FirstOrDefault();

topId可能为null。 你将不得不使用topId.Valuevar result = topId ?? -1; var result = topId ?? -1; 得到一个int结果。

  NorthwindEntities db = new NorthwindEntities();
  int j = db.GetTopEmployee().FirstOrDefault() ?? -1;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM