C# System.Linq.Dynamic使用??歌剧演员

C# System.Linq.Dynamic使用??歌剧演员,c#,linq,dynamic-linq,C#,Linq,Dynamic Linq,我想用??运算符,从而避免大型链条必须使用IIF运算符 例如: customers.Select ("new (CompanyName as Name, Phone)"); customers.Select ("new (CompanyName as Name, iif (Phone = null, string.Empty, Phone) as Phone)"); customers.Select ("new (CompanyName as Name, (Phone ?? string.E

我想用??运算符,从而避免大型链条必须使用IIF运算符

例如:

customers.Select ("new (CompanyName as Name, Phone)");

customers.Select ("new (CompanyName as Name, iif (Phone = null, string.Empty, Phone) as Phone)");

customers.Select ("new (CompanyName as Name, (Phone ?? string.Empty) as Phone)");
或者也许有其他方法可以做到这一点。

请参见

动态linq接受一个字符串并将其转换为linq等价物。 您甚至可以获取源代码表单链接并检查字符串选项的解析

我刚刚查看了图书馆,认为它几乎不可能做你想做的事。
tokenId枚举说明了很多可能的情况 我刚刚打开解析器,看到了这个

 private enum TokenId {
        Unknown,
        End,
        Identifier,
        StringLiteral,
        IntegerLiteral,
        RealLiteral,
        Exclamation,
        Percent,
        Amphersand,
        OpenParen,
        CloseParen,
        Asterisk,
        Plus,
        Comma,
        Minus,
        Dot,
        Slash,
        Colon,
        LessThan,
        Equal,
        GreaterThan,
        Question,
        OpenBracket,
        CloseBracket,
        Bar,
        ExclamationEqual,
        DoubleAmphersand,
        LessThanEqual,
        LessGreater,
        DoubleEqual,
        GreaterThanEqual,
        DoubleBar
    }

有点不清楚你想做什么。你能发布更多的代码吗,比如类和尝试?不清楚吗?他基本上是在问,是否可以使用
电话??string.Empty
而不是动态Linq中的
iif(Phone=null,string.Empty,Phone)
。我当前正在使用网站上提供的库:。它的新元素没有原始的Microsoft。但它缺乏这种功能,并希望包括。使用Linq非常简单:Table.Select(s=>new{Res s.Field1??=”“});同样,它也非常有效,比如说Table.Select(“new(Field1???”\“as Res)”);有人想要Constibuir吗?谢谢。我认为在这一点上添加null coalesce没有问题,它将在传递到Linq到实体之前进行评估。linq to entities库不会更改。只有这个基于字符串的fascade。因此,无论如何,改进它以支持其他运营商