Соединение двух операторов в контроллере - PullRequest
0 голосов
/ 01 апреля 2012

Возникли проблемы с объединением двух операторов в контроллере.Оба оператора работают, но не могут заставить их работать как один элемент.

Первый оператор - показать данные для пользователя, когда его имя совпадает с зарегистрированным именем пользователя. Это прекрасно работает.

public ViewResult Index()
    {
        var myrecords = db.Customers.Where(UserData => UserData.UserName.Equals
                (User.Identity.Name)).ToList();

        return View(myrecords);
    }

Второй операторпредназначен для соединения таблиц и отображения данных.Это прекрасно работает

  var caradverts = db.CarAdverts.Include(c => c.BodyType).Include(c => c.Car).Include(c => c.Colour).Include(c => c.Customer).Include(c => c.EngineSize).Include(c => c.fuel).Include(c => c.SalesPlan).Include(c => c.Transmission).Include(c => c.year);



        return View(caradverts.ToList());

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

Любые советы приветствуются

1 Ответ

1 голос
/ 01 апреля 2012

Как насчет этого:

var caradverts = db.CarAdverts
                   .Include(c => c.BodyType)
                   .Include(c => c.Car)
                   .Include(c => c.Colour)
                   .Include(c => c.Customer)
                   .Include(c => c.EngineSize)
                   .Include(c => c.fuel)
                   .Include(c => c.SalesPlan)
                   .Include(c => c.Transmission)
                   .Include(c => c.year)
                   .Where(c => c.Customer.UserName == User.Identity.Name)
                   .ToList();

Вам действительно нужны все эти Include заявления, хотя? Похоже, что большинство из них относятся к простым примитивным свойствам и не связаны между собой.

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

 var userRecord = db.Customers
                    .SingleOrDefault(u => u.UserName == User.Identity.Name);

Затем обновите модель / представление соответственно, чтобы иметь дело с одной Customer записью, а не коллекцией.

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