Я пытаюсь установить свойство EntityCollection
(v.TPM_USER2
) для подмножества пользователей в моей базе данных.У меня есть массив view.DNs
, который содержит список имен пользователей для добавления.Я могу сделать это с помощью:
if(view.DNs != null && view.DNs.Length > 0)
{
var users = (from u in context.TPM_USER where view.DNs.Contains(u.DN) select u);
foreach (var u in users)
{
v.TPM_USER2.Add(u);
}
}
Это прекрасно работает, однако у меня есть ощущение, что есть способ сделать это с помощью одной строки кода.Я пробовал:
v.TPM_USER2 = (from u in context.TPM_USER where view.DNs.Contains(u.DN) select u);
, что приводит к ошибке:
Ошибка 78 Не удается неявно преобразовать тип 'System.Linq.IQueryable' в 'System.Data.Objects.DataClasses.EntityCollection
Я тоже безуспешно пытался использовать ToArray()
.Есть ли способ сделать это?
ОБНОВЛЕНИЕ:
Я также попытался:
v.TPM_USER2.Attach(from u in context.TPM_USER where view.DNs.Contains(u.DN) select u);
, который компилируется, но генерирует ошибку времени выполнения:
Присоединение не является допустимой операцией, когда исходный объект, связанный с этим связанным концом, находится в добавленном, удаленном или отсоединенном состоянии.Объекты, загруженные с использованием опции слияния NoTracking, всегда отсоединяются.