C# C、 .Net原始SQL Server查询返回数值,但返回空字符串

C# C、 .Net原始SQL Server查询返回数值,但返回空字符串,c#,.net,entity-framework,C#,.net,Entity Framework,我使用的是VS2017,C,EF 6.2.0。我有一个如下所示的查询,可以访问两个不同的数据库。一个数据库保存员工信息,另一个数据库保存空间使用数据,读作:Person-X可以访问哪些办公室、实验室等 我可以在SSMS中运行原始查询,将@PERSONID替换为真实的PERSONID,并且可以正常工作。当我通过下面的方法运行查询时,它会返回一个结果,但字符串GroupName始终为null 我必须为弦做些特殊的事情吗 public class PersonToMemberInfo { p

我使用的是VS2017,C,EF 6.2.0。我有一个如下所示的查询,可以访问两个不同的数据库。一个数据库保存员工信息,另一个数据库保存空间使用数据,读作:Person-X可以访问哪些办公室、实验室等

我可以在SSMS中运行原始查询,将@PERSONID替换为真实的PERSONID,并且可以正常工作。当我通过下面的方法运行查询时,它会返回一个结果,但字符串GroupName始终为null

我必须为弦做些特殊的事情吗

public class PersonToMemberInfo 
{
    public long GroupId { get; set; }
    public long PersonnelGroupId { get; set; }
    public string GroupName { get; set; }
}

public List<PersonToMemberInfo> GetPersonMemberships(PersonnelContext pdb, long personId) {
    try {
        var personIdParam = new SqlParameter {
            Value = personId,
            DbType = DbType.Int64,
            ParameterName = "PERSONID"
        };

        var myList = pdb.Database.SqlQuery<PersonToMemberInfo>(@"
            SELECT DISTINCT
                sGroup.GroupId,
                sGroup.PersonnelGroupId,
                sGroup.Name
            FROM
                Company.Personnel.Memberships AS Memberships
            INNER JOIN 
                Space.dbo.Person AS Person ON Memberships.PersonId = Person.PersonnelPersonId
                                           AND Person.PersonnelPersonId = @PERSONID
                                           AND GETDATE() BETWEEN Person.StartDate AND isnull(Person.EndDate, GETDATE())
            INNER JOIN 
                Space.dbo.[Group] AS sGroup ON Memberships.GroupId = sGroup.PersonnelGroupId
            INNER JOIN  
                Space.dbo.GroupList AS GroupList ON sGroup.GroupId = GroupList.GroupId
                                                 AND GETDATE() BETWEEN GroupList.StartDate AND ISNULL(GroupList.EndDate, GETDATE())--
            WHERE  
                GETDATE() BETWEEN Memberships.StartDate AND ISNULL(Memberships.EndDate, GETDATE());",
            personIdParam).ToList();

        return myList;
    } catch (Exception e) {
        throw new Exception("GetPersonMemberships: " + e.Message);
    }
}
列名当前名称可能需要与成员名GroupName匹配;尝试:

sGroup.Name as [GroupName]