Eyal
Eyal

Reputation: 4763

LINQ to Entities does not recognize the method inside the select section

I need to AddYears(2) in the select new ShowRequestsModel. how can I do this? It throws an exception

var requests = (from req in db.PartRequests
                join info in db.UsersInfos on req.UserId equals info.aspnet_UserId
                join prodName in db.Products on req.ProductId equals prodName.Id
                join partRequestStatus in db.PartRequestStatus on req.PartRequestStatusId equals partRequestStatus.Id           
                select new ShowRequestsModel
                {                                                                                                                
                    WarantyExpirationDate = req.PurchasedDate.AddYears(2),
                    IsWarantyExpired = false
                })
                .Sort(sortField, sortBy);

Upvotes: 1

Views: 24

Answers (1)

Taras Shcherban
Taras Shcherban

Reputation: 197

You need DbFunctions class (System.Data.Entity), especially its AddYears() method

var requests = (from req in db.PartRequests
            join info in db.UsersInfos on req.UserId equals info.aspnet_UserId
            join prodName in db.Products on req.ProductId equals prodName.Id
            join partRequestStatus in db.PartRequestStatus on req.PartRequestStatusId equals partRequestStatus.Id           
            select new ShowRequestsModel
            {                                                                                                                
                WarantyExpirationDate = DbFunctions.AddYears(req.PurchasedDate, 2),
                IsWarantyExpired = false
            })
            .Sort(sortField, sortBy);

Upvotes: 3

Related Questions