C# 将查询转换为字符串时出错

C# 将查询转换为字符串时出错,c#,asp.net-mvc,linq,C#,Asp.net Mvc,Linq,我在将查询转换为字符串时遇到了一个问题…我做了研究,发现大多数答案都是将第一个或单个附加到查询的末尾,这可以清楚地看到。我认为这可能是缓存问题,所以解决了这个问题。我在下面得到一个错误 错误1无法将类型“JobTracker.Models.Location”隐式转换为 “字符串” 有关守则: public static string ClientIPName() { string ClientIP = null; ClientIP = HttpContext.Current.Re

我在将查询转换为字符串时遇到了一个问题…我做了研究,发现大多数答案都是将第一个或单个附加到查询的末尾,这可以清楚地看到。我认为这可能是缓存问题,所以解决了这个问题。我在下面得到一个错误

错误1无法将类型“JobTracker.Models.Location”隐式转换为 “字符串”

有关守则:

public static string ClientIPName()
{
    string ClientIP = null;
    ClientIP = HttpContext.Current.Request.UserHostAddress;
    return ClientIP;
}

public static string LocationIPAssign()
{
    JobData db = new JobData();

    var workstationLocation = ClientIPName();
    var result = db.Locations
        .Where(l => l.AssignedIP == workstationLocation)
        .FirstOrDefault();

    return result;
}
初始错误:

无法将类型System.Linq.IQueryable隐式转换为字符串


你知道是什么导致了这个错误吗?

你的
第一个或默认值
调用会产生一个
位置
对象,你显然想要一个
字符串
。我猜
位置上的一个属性就是您要返回的属性,所以请将该值选择为off

var result = db.Locations
    .Where(l => l.AssignedIP == workstationLocation)
    .Select(l => l.<whatever string property you want>)
    .FirstOrDefault();
var result=db.位置
.其中(l=>l.AssignedIP==工作站位置)
.选择(l=>l.)
.FirstOrDefault();

result
不是您的函数期望返回的类型?您将收到与不匹配的类型相关的错误消息。然而,你的问题并没有包括任何关于它们可能是什么的信息。请回答您的问题,并添加其声明的相关部分,包括包含
返回结果的函数的预期返回类型异常实际发生在哪一行?在该行中,将鼠标悬停在每种类型上,以确定转换尝试在何处进行。我在“返回结果”处收到一个错误@YuriyFaktorovich@goldeneye听起来返回类型是string,而结果是Location。我得选一个。