Мой сценарий Я использую Visual Studio 2010 с Entity Framework 4.1. У меня есть устаревшая база данных со множеством таблиц и множеством хранимых процедур.Я пишу программу на ASP.NET C # с использованием MVC 3
. Я принял «сначала базу данных», используя ADO.NET DbContext, поэтому у меня есть edmx со всеми моделями, ассоциациями и навигационными свойствами,Я могу сопоставить процедуры вставки, обновления, удаления с соответствующими моделями.Я использовал «Импорт функций» для импорта других хранимых процедур.Однако я не могу найти способ сопоставить свои процедуры выбора для выбора действий (выбрать по идентификатору, выбрать список, выбрать по фильтру и т. Д.).
Кажется, EF использует отложенную загрузку, поэтому я хочу, чтобы это произошлокогда объект выбирает свои дочерние объекты, он использует хранимые процедуры, уже написанные.(Процедуры выбора принимают во внимание флаг IsDeleted и используют, среди прочего, предложение «ORDER BY»)
Из этой статьи http://weblogs.asp.net/scottgu/archive/2007/08/16/linq-to-sql-part-6-retrieving-data-using-stored-procedures.aspx я вижу, что Linq to SQL позволяет перетаскиватьSP, который звучит, более или менее, именно то, что я хочу.
Я также сталкивался с термином DefiningQuery.http://msdn.microsoft.com/en-us/library/cc982038.aspx Это то, что я хочу?Мне не нравится примечание «Любые изменения, внесенные в модель хранилища, включая определение запросов, будут перезаписаны при запуске мастера обновления модели».
В общем, я хочу, чтобы когда объектизвлекает дочерние объекты, которые использует мои хранимые процедуры.
Могу ли я достичь своей цели с помощью Entity Framework?Я пропустил что-то очевидное?
Или я должен попытаться быть по-настоящему умным и изменить шаблон db Entity T4, чтобы, например, моя сгенерированная модель адресов имела это свойство:
public virtual ICollection<AddressLine> AddressLines {
get{
DBWrapper _db = new DBWrapper();
return _db.GetAddressLines(AddressID);
}
set{};
}
где GetAddressLines - пользовательская функция, которая вызывает импорт функции и выполняет необходимые преобразования.