这是我的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
,我想在服务中修剪它。有没有办法可以做到这一点?
感谢。
答案 0 :(得分:0)
您可以使用customer.AccountingID.Trim()
。除了linq-to-objects之外,当AccountingID
为null时,这不会抛出空引用异常,因为实体框架会将其转换为LTRIM(RTRIM( xxx ))
,如果xxx
为null,则仅返回null。 / p>
这就是为什么IQueryable
被称为泄漏抽象,重要的是如何实现它。这可能非常麻烦,因为添加ToList()
的明显无害的修改现在可以导致运行时异常。