2013-06-21 3 views
4

Я хочу создать временную таблицу в sql-сервере с помощью Entity Framework. Есть ли способ сделать это? Если я смогу создать временную таблицу, мой следующий вопрос: как я могу это прочитать?Создать временную таблицу с Entity Framework

Заранее спасибо.

Андре

+0

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

+1

Да, я знаю это, но мне это не нравится. – Andre

+0

То, как я столкнулся с подобной ситуацией, это использовать хранимую процедуру с переменной таблицы SQL Server. Построение представления также может быть вариантом в зависимости от ваших потребностей/ситуации. Но, в основном, временные таблицы и табличные переменные лучше всего работают в БД, чем пытаться заставить квадратную привязку в круглое отверстие. – jfrankcarr

ответ

1

Ok, так что вам не нравится хранимые процедуры маршрут .... и я не быть честным, но это самый быстрый способ, которым я мог думать это делать.

Основываясь на этом, я не знаю, какой простой способ в EDM создать временные таблицы, поэтому моим следующим предложением было бы создание локальных объектов, имитирующих временную таблицу, которую вы хотите создать. Название временное, очевидно, указывает на то, что вы не хотите, чтобы они постоянно работали в базе данных, поэтому использование в объектах памяти имеет гораздо большую управляемость и (в зависимости от вашей задержки) быстрее, чем выполнение нескольких вызовов в базе данных.

public class MyTempTable 
{ 
    public string ID { get; set; } 
    public string Column1 { get; set; } 
    // your other columns here 
} 

List<MyTempTable> tempTable = new List<MyTempTable>(); 

Как только вы создали свой список объектов, вы можете сделать в основном все, что вы обычно делаете в таблице базы данных, используя Linq.

+2

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

+0

Вы можете сделать это с небольшим взломом .... http: //stackoverflow.com/questions/9165288/trying-to-join-a-list-and-a-sql-table-using-linq-contains-method -still-give-lo – Andrew

+1

@Andrew - Метод Contains работает достаточно хорошо, особенно для небольших объемов данных, таких как таблица поиска или ограниченный диапазон дат. У меня есть некоторые проблемы с его созданием огромного предложения IN для больших объемов данных. – jfrankcarr