слишком много полей для указания в наборе результатов объединения - PullRequest
2 голосов
/ 19 июня 2010

Итак, подобные вопросы задавались с небольшим количеством ответов ....

У меня есть таблица статистики, связанная с таблицей ветвлений.Записи статистики содержат статистику по пк конкретного отделения банка.

Branch
+Code
+Name
+Area
...

Stats
+BranchCode
+IP
+UpSpeed
+DownSpeed
...

Вот мой запрос linq ...

var stats = from st in store.Stats
                        join b in store.Branches on st.BranchCode equals b.Brcd
                        select new
                        {
                            st.ID,st.IP,st.Name,b.Brcd,b.Branch_Name..............
                        };

Проблема в том, что st и b имеют МНОГИЕ поля,сейчас, я думаю, я напишу их все ... но разве нет решения для этого?* Предотвратить ввод всех полей ... что-то вроде * подстановочного знака?

Пробовал ли он пересекаться, однако типы должны быть одинаковыми!

Спасибо Гидеон

1 Ответ

1 голос
/ 19 июня 2010

1

var stats =
  from st in store.Stats 
  join b in store.Branches on st.BranchCode equals b.Brcd 
  select new 
  { 
    Stats = st,
    Branch = b
  };

Создает анонимные экземпляры с одной статистикой и одной ветвью.


2

var stats =
  from b in store.Branches
  join st in store.Stats 
    on b.Brcd equals st.BranchCode
    into branchstats
  select new 
  { 
    Branch = b
    Stats = branchstats
  };

Создает анонимные экземпляры с одной веткой и ееStats.


3

var stats =
  from b in store.Branches
  select new 
  { 
    Branch = b
    Stats = b.Stats
  };

То же, что и 2 . Если в конструкторе есть связь между двумя типами, то создается реляционное свойство дляКаждый тип.


4

DataLoadOptions dlo = new DataLoadOptions()
dlo.LoadWith<Branch>(b => b.Stats);
store.LoadOptions = dlo;

List<Branch> branches = store.Branches.ToList();

Здесь указываются DataLoadOptions, которые автоматически заполняют свойство Stats при загрузке любой ветви.

...