0

这是我的 WCF 服务中操作的实现。对象_members是一个 EF。 QueryConstraint是一种数据契约,它存储数据Where并将OrderBy其应用于使用 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,我想在服务中对其进行修剪。有没有办法我可以做到这一点?

谢谢。

4

1 回答 1

0

您可以使用customer.AccountingID.Trim(). 除了在 linq-to-objects 中,它在为 null 时不会引发 null 引用异常AccountingID,因为 Entity Framework 将其转换为LTRIM(RTRIM( xxx ))仅在为 null 时返回xxxnull。

这就是为什么IQueryable称为泄漏抽象的原因,它的实现方式很重要。这可能会很麻烦,因为一个看似无害的修改,添加ToList(),现在可能会导致运行时异常。

于 2012-08-28T16:56:50.817 回答