C# Linq:连接两个表
在我的WPF网格上,我正在填充以下属性。最后两位来自另一张桌子。我想从另一个表中获取映射规则,其中事务表中的C# Linq:连接两个表,c#,linq,C#,Linq,在我的WPF网格上,我正在填充以下属性。最后两位来自另一张桌子。我想从另一个表中获取映射规则,其中事务表中的sourceelementid等于messagefield表的id public List<MessageFieldViewModel> GetAllViewModelMsgFields() { messageFieldVModel = messageField.GetAllMessageField().Select(msgFields => new Messag
sourceelementid
等于messagefield
表的id
public List<MessageFieldViewModel> GetAllViewModelMsgFields()
{
messageFieldVModel = messageField.GetAllMessageField().Select(msgFields => new MessageFieldViewModel
{
Id = msgFields.Id,
Code = msgFields.Code,
Name = msgFields.Name,
Position = msgFields.Position,
Length = msgFields.Length,
IsMapped = (transactionRuleList.Any(tr=> tr.SourceElementId ==msgFields.Id)),
MappingRule = transactionRuleList.Where(mapRule => mapRule.MappingRule.Any(tr=> tr.SourceElementId ==msgFields.Id)),
})
.ToList();
return messageFieldVModel;
}
公共列表GetAllViewModelMsgFields()
{
messageFieldVModel=messageField.GetAllMessageField()。选择(msgFields=>new MessageFieldViewModel
{
Id=msgFields.Id,
Code=msgFields.Code,
Name=msgFields.Name,
位置=msgFields.Position,
长度=msgFields.Length,
IsMapped=(transactionRuleList.Any(tr=>tr.SourceElementId==msgFields.Id)),
MappingRule=transactionRuleList.Where(mapRule=>mapRule.MappingRule.Any(tr=>tr.SourceElementId==msgFields.Id)),
})
.ToList();
返回消息fieldvmodel;
}
但是映射规则列抛出错误。有人能帮我吗?这里有一个解决方案:
transactionRuleList = transationRuleViewModel.GetAllTranslationRules();
messageFieldVModel = messageField.GetAllMessageField().Select(msgFields => new MessageFieldViewModel
{
Id = msgFields.Id,
Code = msgFields.Code,
Name = msgFields.Name,
Position = msgFields.Position,
Length = msgFields.Length,
IsMapped = (transactionRuleList.Any(tr => tr.SourceElementId == msgFields.Id)),
MappingRule = transactionRuleList.Any(mapRule => mapRule.SourceElementId == msgFields.Id)?transactionRuleList.First(mapRule => mapRule.SourceElementId == msgFields.Id).MappingRule:null
您可以发布内部异常吗?@Goanne这里有一个错误:“char”不包含“SourceElementId”的定义,并且找不到接受“char”类型的第一个参数的扩展方法“SourceElementId”(您是否缺少using指令或程序集引用?好的,是否要在关闭内括号之前添加最后一个coma?“msgFields.Id”),“=>“msgFields.Id”)“这是我拥有的:MappingRule=transactionRuleList.Where(mapRule=>mapRule.MappingRule.Any(tr=>tr.SourceElementId==msgFields.Id))}.ToList();我发现了问题所在,我将很快发布解决方案!谢谢大家