我有两个可变字符串。如何通过HTTPResponseMessage传递两个字符串的结果
var masterInfo = entities.Empmaster.Where(e => e.EmployeeId == EmployeeID)
.FirstOrDefault();
string masterDepartment = entities.Departments.Where(d = DepartmentID =
MasterInfo.DepartmentId)
.select(d => d.Name)
.FirstOrDefault();
if (masterInfo == null)
{
return Request.CreateErrorResponse(HttpStatusCode.NotFound, "No Info");
}
else
{
return Request.CreateResponse(HttpStatusCode.OK, masterInfo);
}
每当我尝试将masterDepartment与masterInfo连接起来
return Request.CreateResponse(HttpStatusCode.OK, masterInfo +
masterDepartment);
我没有得到任何错误,但只有一个输出,指出了System.Data.Entity.DynamicProxies.EmpMaster_260ECB16225F4E5E0232BA72326492E9BADA61D68BE4DCEF48D365296F69975F人力资源。 虽然以某种方式我得到masterDepartment的结果,即人力资源。但不是masterInfo的结果。 如果我只传递第一个示例中所示的一个变量,我将获得预期的输出。
答案 0 :(得分:0)
masterInfo或masterDepartment都不是字符串,它是您要查询的实体的实例。如果要连接这些实体实例的成员,则可以执行以下操作。
return Request.CreateResponse(HttpStatusCode.OK,
masterInfo.SomeStringField + masterDepartment.SomeOtherStringField);
答案 1 :(得分:0)
据我了解,
您要返回masterInfo
和masterDepartment
并返回OK
然后尝试下面的代码
if (masterInfo == null)
{
return Request.CreateErrorResponse(HttpStatusCode.NotFound, "No Info");
}
else
{
return Request.CreateResponse(HttpStatusCode.OK, new { MasterInfo = masterInfo, MasterDepartment = masterDepartment });
//OR
//return Request.CreateResponse(HttpStatusCode.OK, new { masterInfo, masterDepartment });
}
尝试一次可能对您有帮助
编辑:
这里我们用关键字Anonymous Type
创建一个new
意味着只创建一个新类型而不定义它们
您可以从here了解有关Anonymous Type
的更多信息