В настоящий момент внешние ключи и таблицы поиска в Entity Framework являются PAIN.
EF с LINQ делает получение ваших данных супер-легким, и на первый взгляд выглядит простым для обновления, но с таблицами поиска все становится сложно (на данный момент ... читать на ...)
Я не уверен, как бы вы "объединили" свои таблицы поиска в одну таблицу. Если каждая таблица содержит различный тип «поискового объекта», то IMHO, они должны быть представлены отдельно в вашей EDM. Я предполагаю, что у вас возникают головные боли при обновлении внешних ключей записи в таблицах поиска. Это потому, что это головная боль.
Изменение значений внешнего ключа:
MyDBEntities _db = new MyDBEntities();
//get a Person
MyDBEntities.Person person = (from p in _db.Persons
where p.Id = 1
select p).First();
// This sets the foreign key value in the Person table on the PersonType field
person.PersonTypeReference = new EntityKey("MyDBEntities.PersonType", "PersonTypeId", 3)
Следующая версия Entity Framework будет иметь новую концепцию под названием «Ассоциации FK». Это вернет разумность установки значения внешнего ключа напрямую, а не необходимости создавать и устанавливать EntityKey.
НТН.