Ошибка обновления Entity Framework в ASP.NET Mvc со связанной сущностью - PullRequest
0 голосов
/ 22 апреля 2010

Я столкнулся с проблемой, которая искала и пыталась сделать все возможное, чтобы найти решение, но безрезультатно.Я использую один и тот же репозиторий и контекст на протяжении всего процесса

У меня есть объект бронирования и объект userExtension Ниже мое изображение альтернативный текст http://i41.tinypic.com/25ulmgy.jpg

Затем я получаю коллекцию форм из моегозайдите на страницу и создайте новое бронирование

 public ActionResult Create(FormCollection collection)
    {
        Booking toBooking = new Booking();

. Затем я сделаю некоторую проверку и назначу свойства и найду соответствующий BidInstance toBooking.BidInstance = bid;

. Я проверил, и ставка не является нулевой.наконец, я получаю файл расширения пользователя от текущего пользователя IPRINCIPAL, как показано ниже

UserExtension loggedInUser = m_BookingRepository.GetBookingCurrentUser(User);
            toBooking.UserExtension = loggedInUser;

Код для выполнения getUserExtension:

 public UserExtension GetBookingCurrentUser(IPrincipal currentUser)
    {

        var user = (from u in Context.aspnet_Users
                             .Include("UserExtension")
                             where u.UserName == currentUser.Identity.Name
                             select u).FirstOrDefault();

        if (user != null)
        { 
            var userextension = (from u in Context.UserExtension.Include("aspnet_Users") where u.aspnet_Users.UserId == user.UserId select u).FirstOrDefault();
            return userextension;
        }
        else{
        return null;
        }
    }

Возвращает штраф userextension и назначает его штраф.Первоначально я использовал aspnet_users, но столкнулся с этой проблемой, поэтому попытался изменить его на расширение объекта.как только я вызываю:

  Context.AddToBooking(booking);
        Context.SaveChanges();

, я получаю следующее исключение, и я совершенно сбит с толку тем, как его исправить

Сущности в FutureFlyersEntityModel.Booking участвуют в отношениях FK_Booking_UserExtension.,0 связанных 'UserExtension' были найдены.1 Ожидается «UserExtension».

, тогда последняя ошибка, которая приходит к внешнему интерфейсу:

Информация метаданных для отношения 'FutureFlyersModel.FK_Booking_BidInstance' не может быть получена.Убедитесь, что EdmRelationshipAttribute для отношения определен в сборке.Имя параметра: отношениеName ..

Но обе связанные сущности установлены в сущности бронирования, переданной через

ПОЖАЛУЙСТА, ПОМОГИТЕ Я в конце этого

Ответы [ 2 ]

0 голосов
/ 23 апреля 2010

Я нашел проблему.получается, что я связывал отдельный объект с таблицей пользователей, и у него была связанная сущность, так как в таблице бронирования есть родительский объект, поэтому в паре уровней сущностей, которые пытались добавить, был в основном пустой объект бронирования.это произошло, поскольку я не осознавал, что если вы связываете сущность с новой сущностью, она автоматически добавляет ее в контекст, поэтому эта сущность отсутствует.спасибо всем за помощь

0 голосов
/ 22 апреля 2010

Звучит как проблема в вашем файле .Edmx.Попробуйте заново создать файл edmx и посмотрите, решит ли он проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...