我有以下内容:
var questions = questionService.Details(pk, rk);
var topics = contentService.GetTitles("0006000")
.Where(x => x.RowKey.Substring(2, 2) != "00");
model = (
from q in questions
join t in topics on q.RowKey.Substring(0, 4) equals t.RowKey into topics2
from t in topics2.DefaultIfEmpty()
select new Question.Grid {
PartitionKey = q.PartitionKey,
RowKey = q.RowKey,
Topic = t == null ? "No matching topic" : t.Title,
...
现在我需要添加以下内容:
var types = referenceService.Get("07");
questions.type
和types.RowKey
有没有一种方法可以链接这个第三个数据源并让它在类型表中没有匹配的情况下给出“无匹配类型”的消息?我的问题是我不太确定如何进行下一次加入。
答案 0 :(得分:0)
var questions = questionService.Details(pk, rk);
var topics = contentService.GetTitles("0006000")
.Where(x => x.RowKey.Substring(2, 2) != "00");
var types = referenceService.Get("07");
model = (from q in questions
join t in topics on q.RowKey.Substring(0, 4) equals t.RowKey into topics2
from t in topics2.DefaultIfEmpty())
select new Question.Grid {
PartitionKey = q.PartitionKey,
RowKey = q.RowKey,
Topic = t == null ? "No matching topic" : t.Title,
...
}).Union
(from a in types
join q in questions on q.type equals a.RowKey
where a.ID != null
select new Question.Grid {
PartitionKey = q.PartitionKey,
RowKey = q.RowKey,
Topic = t == null ? "No matching topic" : t.Title,
...
})
答案 1 :(得分:0)
我相信你可以加入第一个连接的结果和第三个数据源:
var questions = questionService.Details(pk, rk);
var topics = contentService.GetTitles("0006000")
.Where(x => x.RowKey.Substring(2, 2) != "00");
var types = referenceService.Get("07");
model = (
from q in questions
join t in topics on q.RowKey.Substring(0, 4) equals t.RowKey into topics2
from t in topics2.DefaultIfEmpty()
join type in types on q.type equals type.RowKey into types2
from type in types2.DefaultIfEmpty()
select new Question.Grid {
PartitionKey = q.PartitionKey,
RowKey = q.RowKey,
Topic = t == null ? "No matching topic" : t.Title,
Type = type == null ? "No matching type" : type.Title,
...