将GUID转换为字符串实体框架

本文关键字:实体 框架 字符串 GUID 转换 | 更新日期: 2023-09-27 18:08:35

冒着问一个重复问题的风险,我似乎无法让这个工作。我想做的事情有很多例子,但语法不太一样,什么都没起作用。我正在自学Linq。这个查询从SQL server获取一个id列表。如果没有"ToString()",它会说"不能将GUID转换为字符串[]"。请提前告知并感谢。

    public string[] GetAllRoleIDs(string param)
    {           
        using (DBEntities de = new DBEntities())
        {
            string[] roleset = (from p in de.MySQLView
                         where p.anotherfield == param
                                select p.RoleID.ToString()).Distinct().ToArray();
            return roleset;
        }            
    }

将GUID转换为字符串实体框架

您希望AsEnumerable()强制ToString()调用在本地求值,而不是作为EF查询的一部分。例如:

using (DBEntities de = new DBEntities())
{
    string[] roleset = de.MySQLView
                         .Where(p => p.anotherfield == param)
                         .Select(p => p.RoleID)
                         .Distinct()
                         .AsEnumerable()
                         .Select(guid => guid.ToString())
                         .ToArray();
    return roleset;
}

(我已经将它从查询表达式转换为使用点符号,因为两者之间的混合和匹配很麻烦,并且您只有whereselect。)当然,如果您愿意,也可以使用查询表达式)