gpt4 book ai didi

c# - LINQ to Entities - 如何从实体返回单个字符串值

转载 作者:太空狗 更新时间:2023-10-29 19:56:04 25 4
gpt4 key购买 nike

我正在使用 asp mvc 3 应用程序。我有一个名为 History 的模型/实体。我有一个返回一个值的 linq 查询。根据我所做的,我要么在调用方法时在 Controller 中收到“对象未设置为实例”错误,要么收到“无法从字符串隐式转换为类型 Models.History”。所以我正在寻求解决方面的帮助,我是否只需要施放它或其他东西?

这是给出“未设置对象”错误的方法:

public string GetPastAbuseData(int Id)
{

var query = (from h in _DB.History
where h.ApplicantId.Equals(Id)
select h.AbuseComment).FirstOrDefault();

return query.ToString();
}

Controller : vm.HistoryModel.AbuseComment = repo.GetPastAbuseData(Id);

如果我将方法类型从字符串更改为历史记录,我会收到“无法转换”错误:

public History GetPastAbuseData(int Id)
{
return (from h in _DB.History
where h.ApplicantId.Equals(Id)
select h.AbuseComment).SingleOrDefault();
}

感谢您的宝贵时间。

最佳答案

您正在从 HistoryObject 中选择 AbuseComment 属性(字符串)。因此,您的代码尝试将字符串转换为 History。只需返回整个 History 实体:

public History GetPastAbuseData(int Id)
{
return (from h in _DB.History
where h.ApplicantId.Equals(Id)
select h).SingleOrDefault();
}

同样在第一种情况下,query 将是字符串类型。您不需要对此变量调用 ToString。更甚者,当你陷入OrDefault() 的情况下,你将有NullReferenceException

public string GetPastAbuseData(int Id)
{
return (from h in _DB.History
where h.ApplicantId.Equals(Id)
select h.AbuseComment).FirstOrDefault();
}

关于c# - LINQ to Entities - 如何从实体返回单个字符串值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13200658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com