Есть ли обходной путь к отсутствию столбцов идентификации внешнего ключа в Entity Framework 3.5? - PullRequest
0 голосов
/ 29 января 2010

Мне нужно понизить сайт с .NET 4 beta 2 до .NET 3.5.

Самым большим препятствием являются все значения идентификаторов внешнего ключа, на которые я ссылаюсь / ищу, поскольку это не поддерживается изначально в EF 3.5.

Кто-нибудь знает разумный обходной путь для этого?

Пример того, что я имею в виду:

contacts.Where(contact => contact.TypeGuid == guid)

[TypeGuid] является FK для [ContactTypes], поэтому я получаю объект [ContactType], к которому я могу получить доступ, если использую .Include("ContactType"), но не сам прямой ID.

1 Ответ

1 голос
/ 29 января 2010

Ваш пример запроса «просто работает» в EF 1, если вы укажете свойство ID:

var someContact = Context.Contacts.Where(c => c.ContactType.Id == guid);

Это в LINQ to Entities.

В объектном пространстве вы можете ссылаться на EntityKey:

var someContact = contacts.Where(c => { var ek = c.ContactTypeReference.EntityKey;
                                        if (ek == null) return false;
                                        return ek.EntityKeyValues[0].Value.Equals(guid);
                                       });
...