Я использую LINQ to SQL в течение последнего года, и у меня не было проблем. Я решил, что хочу поэкспериментировать с EntityFramework в проекте, где требовалось просто вернуть некоторые необработанные данные из нескольких представлений в базу данных клиента. Я создал модель сущностей, включил представления, но когда я написал запрос, чтобы вернуть отдельные строки для определенного значения, были возвращены дубликаты.
Единственный столбец с EntityKey, установленным в true, был PWSID, но этот столбец содержит много дубликатов. Следующим был мой запрос:
int[] pwsIds = (from attribs in db.VW_DOR_ParcelAttribs_All
select attribs.PWSID).Distinct().ToArray();
Я создал модель данных LINQ to SQL и использовал тот же запрос, и все работает, как и ожидалось. Я не вносил никаких изменений ни в одну модель данных.
Я попытался установить для этого свойства EntityKey значение false, но затем я получил ошибку компилятора. У меня нет контроля над столом клиента. Там действительно нет уникального ключа.
Для этого приложения LINQ to SQL приемлемо и прекрасно работает, но я пытаюсь лучше понять, что я сделал неправильно, когда мне нужно будет использовать Entity Framework в будущем. Любое понимание приветствуется.