Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVC中sql到linq的转换_C#_Sql_Asp.net Mvc_Linq - Fatal编程技术网

C# MVC中sql到linq的转换

C# MVC中sql到linq的转换,c#,sql,asp.net-mvc,linq,C#,Sql,Asp.net Mvc,Linq,我无法从sql转换到linq。我已经附加了我的sql查询和模型 注意:我们需要使用where条件将国家和目的地以开头,并将国家id传递到目的地 SQL: 代码: 您可以尝试以下方法: var result = context.Countries .Where ( x=> x.Name.Contains('Sa') && x.Destinations.Any(d=>d.DestinationName.Con

我无法从sql转换到linq。我已经附加了我的sql查询和模型

注意:我们需要使用where条件将国家和目的地以开头,并将国家id传递到目的地

SQL:

代码:


您可以尝试以下方法:

var result = context.Countries
    .Where
    (
        x=>
        x.Name.Contains('Sa') &&
        x.Destinations.Any(d=>d.DestinationName.Contains('sa'))
    )
    .Select
    (
        x=> new Country
        {
            Name = x.Name,
            Destinations = x.Destinations
                .Where(d=>d.DestinationName.Contains('sa'))
                .Select
                (
                    d=>new Destination
                    {
                        Id = d.Id,
                        DestinationID = d.DestinationID ,
                        DestinationName = d.DestinationName ,
                        CountryID = d.CountryID ,
                        State = d.State
                    }
                )
        }
    )
var csdf = (from d in Context.Destinations
            join c in Context.Countries on d.CountryId equals c.Id
            where
            c.Name.Contains("Sa") && d.DestinationName.Contains("sa")
            select new {
              c.Name,
              d.DestinationName,
              d.DestinationId
            });

您的sql to linq如下所示:

var result = context.Countries
    .Where
    (
        x=>
        x.Name.Contains('Sa') &&
        x.Destinations.Any(d=>d.DestinationName.Contains('sa'))
    )
    .Select
    (
        x=> new Country
        {
            Name = x.Name,
            Destinations = x.Destinations
                .Where(d=>d.DestinationName.Contains('sa'))
                .Select
                (
                    d=>new Destination
                    {
                        Id = d.Id,
                        DestinationID = d.DestinationID ,
                        DestinationName = d.DestinationName ,
                        CountryID = d.CountryID ,
                        State = d.State
                    }
                )
        }
    )
var csdf = (from d in Context.Destinations
            join c in Context.Countries on d.CountryId equals c.Id
            where
            c.Name.Contains("Sa") && d.DestinationName.Contains("sa")
            select new {
              c.Name,
              d.DestinationName,
              d.DestinationId
            });

这里有问题吗?