Насколько я понимаю, в вашем проекте есть файл, подобный Model.edmx, который фактически не генерирует никакого кода.Затем у вас есть Model.tt, который EF 4.1 фактически использует для генерации кода.И вы можете изменить этот Model.tt.Итак, если вы хотите добавить вызов частичного метода OnInitialized()
для каждой из сгенерированных сущностей, которая вызывается из их конструкторов, найдите конструктор в коде Model.tt (его первая строка должна выглядеть примерно так: public <#=code.Escape(entity)#>()
), добавьте вызов к OnInitialized()
где-нибудь в конструкторе и объявите частичный метод:
partial void OnInitialized();
Восстановите сущности, используя Run Custom Tool, и все готово.Теперь вы можете сделать что-то подобное в своем не сгенерированном коде:
partial class SomeEntity
{
partial void OnInitialized()
{
// custom initialization code goes here
}
}
Я не знаю EF 4.1, поэтому возможно, что есть лучший способ.