Показать функцию Sql в список - PullRequest
0 голосов
/ 19 октября 2019

Привет,

У меня есть функция, которая возвращает таблицу, и я хотел отобразить эту таблицу в списке - примечание: функция выполнена успешно.

Моя функция

   ALTER function [dbo].[VLOUL]
    (
    @LID int
    )
    RETURNS TABLE
    As
    Return

    Select Users.UserName,Product.PName,Users.SK,Users.Brand,Users.CN,Users.SN,Users.AT,Users.Ref,Users.DC
    from Users 
    INNER JOIN Product ON Product.PID = Users.PID
    where Users.UID= @LID

Контроллер

public ActionResult Details(int S)
    {
           SLMEntitiesDB dbContext = new SLMEntitiesDB();
           List<User> UList = dbContext.Users.Where(U => U.LID == S).ToList();

            return View(UList);

        }

Как я могу отобразить его тем или иным образом

Ответы [ 2 ]

0 голосов
/ 19 октября 2019

Итак, ваш контроллер не использует созданный вами SQL. Я хотел бы предложить проверить эти 2 ссылки:

  1. http://www.thinqlinq.com/Post.aspx/Title/Left-Outer-Joins-in-LINQ-with-Entity-Framework
  2. https://www.tektutorialshub.com/linq-to-entities/join-query-entity-framework/

Я бы сделал этовероятно его путь:

var modelQuery =
  from u in Users
  from p in Products.Where(p => p.PID == u.PID).DefaultIfEmpty() **// NOTE: this does not seems to bee a good relation, I'd assume a NxN relation with a ternary table, but this is what you got in your SQL**
  select new {
    UserName = u.UserName,
    PName = p.PName
  };

var model = modelQuery.ToList(); // NOTE: in debugger you can examine the select that is described via the modelQuery and you also do not need to execute the query here, as returning modelQuery for the view is also an option.

Я бы предложил вам:

  1. проверить базу данных Northwind (пользователь / продукты / каталоги) -очень хороший пример базы данных, которую можно бесплатно загрузить с сайта Microsoft
  2. Изучите основы реляционных баз данных, такие как отношения N: 1, 1: N, N: N (и 1: 1)
  3. Диаграмма БД здесь (без всякого вопроса, это просто беспорядок)
  4. И явно, хотите ли вы использовать процедуру SQL в контроллере или вы просто хотите способ отображения информации из двух таблиц, объединенных
0 голосов
/ 19 октября 2019

Проверьте ответ здесь: Показать список в виде MVC

Решение простое, вам нужно использовать модель внутри вида и соответственно создать шаблон бритвы.

@model IEnumerable<UList>

@{
ViewBag.Title = "Title";
}

@foreach (var item in Model)
{
    <div>
        @item.Name
        <hr />
    </div>
}
...