C# MVC中sql到linq的转换
我无法从sql转换到linq。我已经附加了我的sql查询和模型 注意:我们需要使用where条件将国家和目的地以开头,并将国家id传递到目的地 SQL: 代码: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
您可以尝试以下方法:
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
});
这里有问题吗?