2013-02-26 5 views
0

Я использую представления в DBML, которые, по большей части, сопоставляются таблицам. У меня есть представление CR, которое относится к представлению EVENTCODE. Я установил контекст для записи SQL в Console.Out, а затем запускал SQL, сгенерированный непосредственно на БД. У меня осталось 3 записи. Но когда я запускаю выбор в Linq to SQL (установка LoadOptions в контексте для привязки в таблице EVENTCODE), у меня только 1 запись в CR.EVENTCODE. Правильная связь между представлениями (то же, что и в db). Я могу вызвать context.EVENTCODEs.Where ... и я также получаю 3 записи. Но вытащить связанные записи EVENTCODE через объект CR возвращает только 1. Что еще я должен проверить?Linq to SQL missing records

ответ

0

Проблема заключалась в том, что поле, идентифицированное как первичный ключ в представлении EVENTCODE, не однозначно идентифицировало записи в представлении. Все три возвращаемые записи имели одно и то же ключевое значение, поэтому EntitySet добавлял первую запись и игнорировал последующие записи, потому что у них был тот же ключ, что и в наборе. Я изменил представление, чтобы использовать комбинированный ключ (по 4 полям), и теперь соответствующие номера записей 3.