我有一个绑定到LinqToSql-DataSource的GridView。数据源是多联接。我需要网格的唯一键值。但是由于左联接,表中的所有主键可能都存在两倍或不存在。
我已经在纯sql语句中解决了这个问题。在这里,我通过将两个主键连接成一个“-”来为TableRows创建一个ID。我需要一个ID以便以后使用TableRows,另一个ID可以为null。
所以我在SQL语句中这样做:
select CAST(mitgliedschaft.id as varchar(MAX)) + '-' + CAST(ISNULL(funktion.id, '') as varchar(MAX)) as id from ...... inner join ...... etc
我需要CASTS来不使用“-”和ISNULL-Function来产生计算,因为第二个ID可能为Null。
现在,我必须将方案的这一部分转移到Linq语句中。我这样尝试过:
...
...
select new
{
...
id = mitgliedschaft.id.ToString() + "-" + (funktion.id == null ? 0 : funktion.id).ToString()
...
});
但是没有以这种方式运行它。有人可以帮我将ID与“-”和ID可以为NULL串联吗?如果为NULL,则应为空字符串或Null-Digit或其他任何值。
立即获取:
select new
{
id = (mitgliedschaft.id.ToString() + "-") + (funktion.id.ToString() ?? "0")
}