使用EF4在不存在或与值不匹配的表中查找结果

时间:2011-11-19 23:31:20

标签: c# linq entity-framework

我有2张桌子

我有3个商店,每个商店创建交易并将它们插入到具有自己的商店ID的交易表中。 我希望能够在事务表中查询尚未插入到TransactionMapping表中的所有事务,并使用正在进行搜索的storeID

e.g。

TransactionTable

Transaction Table

MappingTable

Mapping Table

我想从Transaction中获取所有交易信息,其中TransactionMapping Table中匹配的TransactionId不包含调用查询的商店中的storeID。

正如您所看到的,商店1和1的交易表中添加了4个交易。 2。

查看映射表,两者都存储1& 2映射了所有事务,但是存储3没有映射。

如何编写linq查询以返回商店3的事务表中的4条记录?

我想象的任何帮助都是对周日没有挣扎的人的直接询问。

1 个答案:

答案 0 :(得分:0)

我设法解决了这个问题。以为我会发布我是怎么做的,以防其他人遇到同样的问题

 var query = (from a in ctx.TransactionTable
              from b in ctx.MappingTable.Where(x => x.TransactionId== a.TransactionId).DefaultIfEmpty()
                 where a.StoreID!=storeID
                     select new
                               {
                                  Transactions = a,
                                  Mapping = b
                               }).ToList();