• Register
0 votes
94 views

Problem :

I have one entity type called product which is generated by the entity framework. I have tried to write below query

public IMyQueryable<Product> GetProducts(int myCategoryID)
{
    return from prod in db.Products
    where prod.CategoryID== myCategoryID
    select new Product { Name = prod.Name};
}

My below written code throws a following error :

var myproducts = myproductRepository.GetProducts(1).Tolist();

 

“The entity or complex type Shop.Product cannot be constructed in a LINQ to Entities query”

However when I try to use select p instead of the long one select new Product { Name = p.Name}; it miraculously works correctly.

How can I perform the custom select section?

7 5 2
3,870 points

Please log in or register to answer this question.

1 Answer

0 votes

Solution :

You simply cannot (and must not be able to) project onto the mapped entity. You will but, you will need to project onto the anonymous type or onto the DTO:

public class MyProductDTO
{
    public string MyName { get; set; }
    // Other fields which you may need from a Product entity
}

And now your method will return you the List of DTO's as shown in below code snippet.

public List<MyProductDTO> GetProducts(int myCategoryID)
{
    return (from prod in db.Products
    where prod.CategoryID == myCategoryID
    select new MyProductDTO { MyName = prod.Name }).ToList();
}

Hope above explanation will clear your doubts.

9 7 4
38,600 points

Related questions

1 vote
1 answer 4 views
4 views
Problem: Need help with the usage of entities , I am facing this issue. The entity or complex type cannot be constructed in a linq to entities query.
asked Mar 26 PkGuy 13.1k points
0 votes
2 answers 419 views
419 views
Problem : Currently I am migrating from the Identity 1.0.0 to Identity 2.0.1. But the migrations code generated is nothing about the new IdentityUser. And It does not even add the new columns. So I tried to make the new project and also I ... current context At below line IdentityResult result = await UserManager.CreateAsync(user, model.Password); Any clue about the solution on my above problem?
asked Dec 25, 2019 alecxe 7.5k points
0 votes
1 answer 16 views
16 views
How can i apply any entity framework approach like code first and database first in the ASP.NET MVC application.
asked Sep 16, 2020 Daniel Anderson 4k points
0 votes
1 answer 37 views
37 views
Problem: Currently I have the table called Student in the database with some of the values and I am trying to display the values in the webgrid with the help of entityframework. I have done exactly the same kind of work before many times using the Ado.net, but ... I assign the VAR value to List also is this my correct approach? Kindly guide me in fixing my problem related to Entity Framework.
asked Jul 3, 2020 Raphael Pacheco 4.9k points
0 votes
1 answer 213 views
213 views
Problem : I am getting bellow error related to datetime the conversion of a datetime2 data type to a datetime data type resulted in an out-of-range value.
asked Nov 7, 2019 peterlaw 6.9k points
0 votes
1 answer 877 views
877 views
Problem : I am having the table with the name EducationTypes and also an Entity named as EducationType, I just tried to rename the one of the entity properties but now I am always facing following error : Either the parameter @objname is ambiguous or the ... SQL Script is as below: EXECUTE sp_rename @objname = N'dbo.EducationTypes.nvarchar', @newname = N'EducationTypeTitle', @objtype = N'COLUMN'
asked Dec 9, 2019 alecxe 7.5k points
0 votes
1 answer 4 views
4 views
Problem: I am stuck with this ... Please help me that how to deal with this error?Could not load file or assembly mysql data
asked Mar 21 Ifra 24.4k points
0 votes
1 answer 105 views
105 views
Problem : My Query is giving the strange error as follows there is already an open datareader associated with this command which must be closed first.
asked Nov 15, 2019 peterlaw 6.9k points
0 votes
1 answer 11 views
11 views
Problem: the provider did not return a providermanifesttoken string.
asked Feb 19 Dan phillip 4.7k points
0 votes
1 answer 6 views
6 views
Problem: I tried to find out the solution on the web when I face this problem but I did not get any fruitful information that I can continue if you read the above question and understand what is the solution of this please cooperate with me- Thanks
asked Mar 21 rubelkhan 20.4k points