samin.hma
samin.hma

Reputation: 155

Convert a SQL query to EntityFramework

How can I convert this query to Entity Framework Query?

select Price,
(
    select Cost.Title 
    from Cost 
    where Cost.CostID= CostItem.CostID
) as nameCost
from CostItem 
where ItemID= 11

Upvotes: 0

Views: 1335

Answers (2)

MarkB
MarkB

Reputation: 544

var result = dbContext.CostItems
    .Where(item => item.ItemId == 11)
    .Select(item => new { Price = item.Price, nameCose = item.Cost.Title })

Just make sure you have you relations in entity objects properly set up

Upvotes: 1

Felix Pamittan
Felix Pamittan

Reputation: 31889

Your query can also be written with a LEFT JOIN:

SELECT
    ci.Price,
    NameCost = c.Title
FROM CostItem ci
LEFT JOIN Cost c
    ON c.CostID = ci.CostID
WHERE ci.ItemID = 11

Converting this to Linq using C#, you get:

var t =
    from ci in CostItem
    join c in Cost on ci.CostID equals c.CostID into lc
    from c in lc.DefaultIfEmpty()
    where ci.ItemID == 11
    select new {
        Price = ci.Price,
        NameCost = c.Title
    };

Upvotes: 1

Related Questions