В основном вы потеряете поддержку запросов, отложенную загрузку, IntelliSense и т. Д. Например, у вас не будет таких вещей, если вы удалите связь между Пользователи и Вопросы :
from u in context.Users
where u.Questions.Count > 2
select u;
Смысл LINQ состоит в том, чтобы предоставить вам все конструкции, необходимые для реализации модели реляционной базы данных в вашем коде C #, что позволяет вам запрашивать эту модель. Если вы удалите все ассоциации / отношения, LINQ to SQL теряет свою цель.
Относительно Исключение Вы получили:
Если свойство ассоциации
присвоить значение, которое вы не можете изменить
поле внешнего ключа больше, вы должны
изменить отношения, изменив
собственность ассоциации. За
Например, используя Customer и Order from
Пример базы данных Northwind. Если
Свойство «Заказчик» в заказе
присвоить значение, которое вы больше не можете
вручную изменить CustomerID заказа
поле, так как оно должно соответствовать PK
клиент. Вы можете, однако,
изменить свойство «Клиент»
напрямую, назначив его новым клиентом
пример. Это действие будет
автоматически обновлять идентификатор клиента
поле для сопоставления. Мэтт Уоррен (архитектор LINQ to SQL)
Это то, что вам нужно сделать, чтобы решить вашу проблему:
LINQ to SQL ForeignKeyReferenceAlreadyHasValueException error
Для LookUps и LINQ, сделайте это:
LINQ, Lookups, ForeignKeyReferenceAlreadyHasValueException
Используйте этот код, например, при связывании выпадающего списка:
With cboCategory
.DataSource = From Category In db.Categories Order By Category.Name
Select Category
.DisplayMember = "Name"
.ValueMember = "ID" don't set value member: http://tinyurl.com/d9etoy
.DataBindings.Add(New Binding("SelectedItem", ItemBindingSource, "Category"))
End With