2012-01-31 7 views
4

Я пытаюсь выяснить, как лучше всего работать с BLOB и сущностью.Entity Framework 4.1 и BLOB

Я работаю с EF 4.1, и с использованием POCO-х/DbContext

Так вот и пример таблицы:

MyTable 
Key int 
SomeFields ... 
ABlob (ok, it's actually a Text, but whatever) 

Теперь, иногда, когда я выбираю из MyTable, я хочу, чтобы включить поле BLOB, но много времени, я этого не делаю.

Также иногда, когда я обновляю MyTable, я хочу обновить BLOB. но много времени, я этого не делаю.

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

Несомненно, использование EF не означает, что мне всегда нужно запрашивать все мои BLOB. Что мне здесь не хватает?

ответ

4

Это можно сделать, используя разделение таблицы. EF 4.1 и EF 4.

+0

Спасибо - работает! – JMarsch

1

Вы можете попробовать с помощью вызова хранимой процедуры или выполнить оператор SQL из кода:

var result= context.Database.SqlQuery<string>("SELECT yourfield FROM yourtable").ToList(); 

Here some documentation

+0

Спасибо, Гирджио. Я буду помнить об этом, но я действительно пытаюсь найти способ сделать это, который все еще работает с LINQ, и не требует хранимых процедур. – JMarsch

+1

Привет, вы можете использовать этот фрагмент, указав объект как возвращаемый тип и выполнив инструкцию SQL из своего кода (без вызова sp). Поля выбора должны соответствовать свойствам целевого класса. У вас будет список, который вы можете запросить с помощью linq. –

Смежные вопросы