Я пытаюсь написать код, который будет проходить через мой DbSet<staffCompetence>
, но он не работает.Константа System.Object не может быть создана в этом контексте
[HttpPost]
public ActionResult Index(StaffWrapper sw, HttpPostedFileBase file)
{
var st = db.staff.Where(s => s.ID.Equals(sw.Id)).FirstOrDefault();
if (st != null)
{
var cvs = TokenBoxExtension.GetSelectedValues<Guid>("StaffCompetenceTokenBox");
UpdateCompetenceLinks(st.ID, cvs);
//Rewrite values...
db.Entry(st).State = EntityState.Modified;
db.SaveChanges();
}
return View(sw);
}
private void UpdateCompetenceLinks(Guid staffId, Guid[] ids)
{
var model = db.staffCompetence;
for (int i = 0; i < ids.Length; ++i)
{
var id = ids[i];
//On line below it crashes
var scs = model.Where(s => s.competenceID.Equals(id)).ToList(); //ToList() for test
if (!scs.Any())
{
}
}
}
Он врезается в if
состоянии, за исключением NotSupported
и сообщением, что он не может создать System.Object
константу в этом контексте. Что это значит? И как это исправить?
P.S. Я использую русский отладчик, поэтому я не могу опубликовать журнал. ДОБАВЛЕНО
Исключение типа "System.NotSupportedException" в возникло EntityFramework.SqlServer.dll, но не было обработано в коде пользователя
Дополнительные сведения: Не удалось создать константу с типом «System .Object». В этом контексте поддерживаются только типы-примитивы и типы перечисления.
На английском языке:
Исключение типа "System.NotSupportedException" появляется в EntityFramework.SqlServer.dll, но он не был обработан с помощью пользовательского кода.
Детали: Постоянное создание с Тип «System.Object» не удался. В этом контексте поддерживаются типы-префиши и типы итераций.
P.P.S Я перевел как можно.
Вы пробовали 'если (scs.Any())' вместо этого? –
Он падает на любой метод, который у него есть. В других местах, но без цикла работает –
[Duplicate?] (Http://stackoverflow.com/questions/33477049/getting-errors-when-using-equals-on-generic-parameters-with-ef) – 3615