Я создал базу данных с первым кодом, я использую Entity Framework, и все шло хорошо, пока я не вошел в базу данных через проводник SQL Server.
Я обнаружил, что внутри моих объектов навигациясвойств там нет.В коде они работают нормально, и Visual Studio автоматически завершает работу с этими свойствами навигации, но внутри базы данных физически нет столбцов для них или каких-либо упоминаний.Они появляются на диаграмме .edmx
, и все выглядит хорошо.
Я пытался построить БД сверху, но все равно не работает.База данных сохранена в моем каталоге проекта ./bin/debug
.Есть идеи, почему?
Это в основном список фильмов и актеров, когда я пытаюсь добавить фильм в список фильмов, которые содержит объект актера, он просто не отображается в базе данных.
Другой вопрос: я хочу найти в базе данных объект, и когда я его нахожу, я хочу получить сам объект с его собственным типом и использовать его.
Когда я пытаюсь использовать
var query2 = (from b in ctx.Actors
where (b.FirstName == f && (b.LastName) == l)
select b).Take(1); // assert that only one is chosen
// Oscar.BestActor = query2.ToList();
Oscar.BestActor = (Actor)query2;
// not sure about this line (ctx.entry...) - am I doing this right?
ctx.Entry(Oscar.BestActor).State = System.Data.Entity.EntityState.Modified;
ctx.SaveChanges();
, я получаю эту ошибку:
Невозможно привести объект типа 'System.Data.Entity.Infrastructure.DbQuery.`1 [QueryMoviesFinal.Actor] 'для ввода' QueryMoviesFinal.Actor '.
Спасибо, что нашли время и прочитали это!