字符串组合不起作用

时间:2017-03-25 16:24:22

标签: c# asp.net-mvc entity-framework

设置:asp.net mvc web app,azure sql db,EF代码优先项目

我正在尝试将3个字符串和一个短字组合成一个字符串,如下所示:

CompanyAddress = company.ZipCode.ToString() + " " + company.City + ", " + company.Street + " " + company.StreetNr

ZipCode是一个简短的,其他所有都是字符串。在控制器操作中使用此代码不返回任何记录(运行时不会显示错误消息)。当我省略ZipCode部分时,我得到所有记录。

我也尝试过ToString(company.ZipCode)而没有.ToString()。给出了一个摆动线(不编译),并且在运行时没有错误消息,也没有返回记录。 请帮忙。

其他信息: 代码行是api控制器的一部分(见下文),ZipCode可以为空。 当ZipCode是代码行的一部分时,控制器会传递null,否则它会提供正确的字符串。

        var companies = UnitOfWork.GetAll<Company>();
        var query = company in companies
                    where company.Activ == true

                    select new ActiveCompaniesViewModel
                    {
                        CompanyAddress = company.ZipCode.ToString() + " " + company.City + ", " + company.Street + " " + company.StreetNr
                    };

        return query;

2 个答案:

答案 0 :(得分:1)

此前已经回答过, Problem with converting int to string in Linq to entities

我认为这将是您的解决方案,

select new ActiveCompaniesViewModel
{
    CompanyAddress = (company.ZipCode == null ? "" : SqlFunctions.StringConvert((int)company.ZipCode) + " ") +
                     company.City + ", " +
                     company.Street + " " +
                     company.StreetNr
};

答案 1 :(得分:0)

虽然有效(但对我来说没有意义!):

CompanyAddress = SqlFunctions.StringConvert((decimal?)company.ZipCode) + " " + company.City + ", " +
                            company.Street + " " +
                            company.StreetNr,