Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Новый топик    Ответить
 Как отобразить данные из 2х таблиц связанных по ID в одном DataGrid?  [new]
Linkorn
Member

Откуда:
Сообщений: 54
С помощью RIA выкладываю в Silverlight два DataGrid'а
Как отобразить данные из 2х таблиц связанных по ID в одном DataGrid?

Есть запрос к базе, его прогнал через Linqer (SQL to LINQ Converter), получил код LINQ и сгенерированные классы.
Теперь не могу ума дать как эти классы правильно использовать и где.
в DomainService1.cs или DomainService1.metadata.cs.
Мож кто подсткажет?


вот что на выходе Linqer -

LINQ:
from t1 in db.tReturnDoc
from t2 in db.tTopicality
where
t1.Topicality_ID == t2.Topicality_ID
select new {
t1.Comments,
t1.Theme,
t1.Topicality_ID,
t2.Topicality_Name
}

Classes:

public class Query1
{
private String _Comments;
private String _Theme;
private Int32? _Topicality_ID;
private String _Topicality_Name;
public Query1(
String AComments, String ATheme, Int32? ATopicality_ID, String ATopicality_Name)
{
_Comments = AComments;
_Theme = ATheme;
_Topicality_ID = ATopicality_ID;
_Topicality_Name = ATopicality_Name;
}
public String Comments { get { return _Comments; } }
public String Theme { get { return _Theme; } }
public Int32? Topicality_ID { get { return _Topicality_ID; } }
public String Topicality_Name { get { return _Topicality_Name; } }
}
public class Query1List: List<Query1>
{
public Query1List(IncoMegionEntities db)
{
var query =
from t1 in db.tReturnDoc
from t2 in db.tTopicality
where
t1.Topicality_ID == t2.Topicality_ID
select new {
t1.Comments,
t1.Theme,
t1.Topicality_ID,
t2.Topicality_Name
};
foreach (var r in query)
Add(new Query1(
r.Comments, r.Theme, r.Topicality_ID, r.Topicality_Name));
}
}
9 фев 11, 15:13    [10208958]     Ответить | Цитировать Сообщить модератору
 Re: Как отобразить данные из 2х таблиц связанных по ID в одном DataGrid?  [new]
FSou1
Member

Откуда:
Сообщений: 297
Linkorn,

Сгенерировали бы сами (своими руками) классы в .dbml файл. В .cs файле страницы написали запрос и вывод в GridView.
9 фев 11, 18:51    [10210700]     Ответить | Цитировать Сообщить модератору
 Re: Как отобразить данные из 2х таблиц связанных по ID в одном DataGrid?  [new]
Linkorn
Member

Откуда:
Сообщений: 54
FSou1,

классы в .dbml файл Сгенерировал.
каким образом мне отобразить данные в Silverlight?, есть рабочий пример?
9 фев 11, 19:52    [10210923]     Ответить | Цитировать Сообщить модератору
 Re: Как отобразить данные из 2х таблиц связанных по ID в одном DataGrid?  [new]
Linkorn
Member

Откуда:
Сообщений: 54
Linkorn,

нашел пример http://www.c-sharpcorner.com/UploadFile/nipuntomar/958/Default.aspx, где создают
DomainService1, но у меня в диалоге создания DomainService в списке отсутствуют Entities
(проект rebuild-ил - без эффекта) не подскажите чего не хватает?

при создании Model1.edmx в диалоге Entities отображаются.
9 фев 11, 20:04    [10210952]     Ответить | Цитировать Сообщить модератору
 Re: Как отобразить данные из 2х таблиц связанных по ID в одном DataGrid?  [new]
Linkorn
Member

Откуда:
Сообщений: 54
Победил!!!
не хватало WCF RIA Services Toolkit May 2010.msi
10 фев 11, 14:58    [10214891]     Ответить | Цитировать Сообщить модератору
 Re: Как отобразить данные из 2х таблиц связанных по ID в одном DataGrid?  [new]
Alvain
Member

Откуда: Санкт-Петербург
Сообщений: 4
Схожий вопрос:
Изучаю ASP.NET MVC3.

В контроллере написал LINQ-запрос для события Index аналогичные приведенному здесь:
        public ActionResult Index()
        {
             var query =
             from t1 in db.tReturnDoc
             from t2 in db.tTopicality
             where
             t1.Topicality_ID == t2.Topicality_ID
             select new {
                 t1.Comments,
                 t1.Theme,
                 t1.Topicality_ID,
                 t2.Topicality_Name
             };
            View.Model = query.ToList();
            return View();
        }

/////

В Index.cshtml раньше (до того, как был сделан JOIN) было примерно так:

@foreach (var item in Model) {
    @Html.ActionLink("Edit", "Edit", new { id=item.Topicality_ID })
}

После добавления JOIN'а конструкция перестала работать. Почему это происходит - думаю, что я правильно понимаю (возвращаемый список не описан в моделях). Компилятор во время выполнения ругается на то, что он не знает что за объект (item.Topicality_ID) ему пихают.
Но как отобразить такой список? Неужели создавать еще один класс, который будет включать в себя все необходимые поля и приводить item к его типу??? Очень не хотелось бы это делать для каждого запроса (если я не несу бред) :) ...

Подскажите как обращаться с полученным query в представлении (View)!
11 мар 11, 14:13    [10355396]     Ответить | Цитировать Сообщить модератору
 Re: Как отобразить данные из 2х таблиц связанных по ID в одном DataGrid?  [new]
Alvain
Member

Откуда: Санкт-Петербург
Сообщений: 4
Отвечу сам на свой вопрос... Решение проблемы все-таки нашел, только еще не совсем разобрался как его применить.
Но вот, может кому-то поможет: [url=]http://habrahabr.ru/blogs/aspnet_mvc/79363/[/url]
11 мар 11, 23:08    [10358546]     Ответить | Цитировать Сообщить модератору
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Ответить