-1

我需要将以下 SQL 语句转换为 LINQ。我基本上是从数据库视图转移到一块 LINQ,我正在努力让 NOT IN 和内部 Select 工作

SELECT  DISTINCT *  

FROM TFund F3,TFundMapping FM

WHERE F3.ID NOT IN 
(SELECT ParentFundID
 FROM TFundMapping)
AND FM.ChildFundID = F3.ID

作为背景知识,对于我的其他 LINQ 查询,我使用以下样式

public TxxxType[] GetxxxType()
    {
        var query = from item in _context.TxxxType
                    orderby item.ID
                    select item;

        return _context.SelectPOCOsWCF(query);
    }

我似乎无法使语法正确并适合上述风格 - 任何帮助都将不胜感激,因为我在这个问题上遇到了一堵砖墙

非常感谢

4

2 回答 2

0

该工具将帮助您实现目标

http://www.sqltolinq.com/

于 2013-04-23T14:58:21.670 回答
0

你可以试试这个,但它未经测试:

var result = ( from record in _context.TFund

               join fundMappingRecord in _context.TFundMapping
                 on record.ID equals fundMappingRecord.ChildFundID

               where ( from subResult in _context.TFundMapping
                       select subResult.ParentFundID 
                     ).Contains( record.ID ) == false 

               select new 
               {
                   record,
                   fundMappingRecord
               } ).Distinct( );

您仍然会遇到问题,因为您无法将匿名类型传递给另一个方法。

于 2013-04-23T15:21:02.857 回答