如何在调用WCF服务操作内修剪NCHAR字段?

时间:2012-08-27 14:31:18

标签: wcf entity-framework

这是我的WCF服务中的操作的实现。对象_members是EF。 QueryConstraint是一个数据协定,用于存储WhereOrderBy数据,并使用Dynamic Linq将其应用于枚举:

public IEnumerable<CustomersDC> GetCustomers(QueryConstraint a_constraint)
{
    var customers = from customer in _members.Customers
                    select new CustomersDC
                    {
                        CustomerID = customer.ID,
                        Email = customer.Email,
                        FirstName = customer.FirstName,
                        LastName = customer.LastName,
                        IsEmailVerified = customer.EmailVerified,
                        AccountingID = customer.AccountingID,
                        IsTaxExempt = customer.TaxExempt
                    };

    return customers.Apply(a_constraint);
}

字段AccountingID是另一个数据库的保留。因此它是nchar,我想在服务中修剪它。有没有办法可以做到这一点?

感谢。

1 个答案:

答案 0 :(得分:0)

您可以使用customer.AccountingID.Trim()。除了linq-to-objects之外,当AccountingID为null时,这不会抛出空引用异常,因为实体框架会将其转换为LTRIM(RTRIM( xxx )),如果xxx为null,则仅返回null。 / p>

这就是为什么IQueryable被称为泄漏抽象,重要的是如何实现它。这可能非常麻烦,因为添加ToList()的明显无害的修改现在可以导致运行时异常。