Miałem podobny problem i rozwiązałem go, zmieniając opcję scalania w ObjectSet.Example:
using (TargetDBDataContext db = new TargetDBDataContext())
{
db.SomeView.MergeOption = System.Data.Objects.MergeOption.NoTracking;
return db. SomeView.ToList();
}
Wygląda na to, że framework encji (EF) nie obsługuje poprawnie widoków, które mają zduplikowane klucze podstawowe lub w ogóle nie mają kluczy podstawowych. Jeśli więc istnieją dwa wiersze, które EF uważa za równe, EF załaduje pierwszy wiersz tak, jak powinien, ale nie załaduje drugiego wiersza, ponieważ uzna, że jest już załadowany.