0
我有一个实体除了1列存储逗号分隔的Ids以外的几列。Linq-To-Sql /逗号分隔的Ids在1列/返回逗号分隔1列中的名称
当我将数据返回给客户端时,我需要查询其他表以返回Name而不是Id。
我正在使用Linq-To-Sql。该查询确实将Left Outer连接到许多其他表,但仍然不确定如何处理该属性,该属性应该保留为1列而不是Ids。
var query = (
from poc in _manager.All
// Shelter
join s in _shelters.GetAll() on poc.Shelter equals s.Id into JoinShelter
from sh in JoinShelter.DefaultIfEmpty()
select new Dto
{
Id = poc.Id,
PocPresent = poc.PocPresent ? "Yes" : "No",
Shelter = sh.ShelterName
}
仍然有1个属性称为Languages。这是“1,2”,意思是语言1和语言2
在“POC”的属性是字符串语言=“1,2”
现在,我需要把它作为返回“语言1 ,Lang2“。
Lin-To-Sql有什么用?
感谢
谢谢。但是我有一个很长的查询,在我完成查询构建之前,我没有执行它。上面的代码是否会在查询中运行?如果不是,那么如果我使用String.Join它会在现场运行吗? – Bill
是的,你是对的,'语言'投影不会直接在数据库上进行。它将在服务器的内存中完成。也许你应该专注于从数据库中获取正确的子集,然后可以进行类似的内存转换以显示所需的数据。 –
我尝试了上面的,在我的情况下,它不像“Lang”+1那么简单,我必须查询另一个表以从ID中获取名称。所以,我的财产将是IEnumerable>。 内存不是一个选项,因为我有很多记录返回,所以我想我会将所有复杂性转移到SQL Server上。 –
Bill