I'm using EF 4.1 Database First approach, with T4 template generating my POCO classes in separate assembly. I have repositories for fetching data, and service layer which is used for communication with UI.
I was trying to make cascading dropdowns. I'm new in MVC and EF 4.1, so I searched stackoverflow for possible solutions.
This is sample viewmodel class:
public class MyViewModel
{
public int CustomerId { get; set; }
public string CustomerName { get; set; }
public IEnumerable<Phone> Phones { get; set; }
}
What I have read so far, solutions are:
Use
ScriptIgnoreAttribute
inSystem.Web.Script.Serialization
on referencing properties - I don't really want to do this, because I don't want to add reference to System.Web in my POCO projectDisable Lazy Loading in EF 4.1 DbContext - I'm not sure do I want to use Include thorough my project
Return anonymous types - will I have problems with this approach when my project gets big?
Use a ViewModel - suppose I have a Customer which can have 1 or more phones. In first dropdown list you can select Customer, and in second dropdown you display all of his phones.
But wouldn't this generate a circular exception on my Phones object? Or i would make a special class for my Phone object? That seems like a lot of unnecesarry code.Use AutoMapper - don't have experience with AutoMapper, so I don't know how complicated it is.
For which one would you vote and why?