EF 4, POCO Template - ошибка при разделении пространства имен - PullRequest
1 голос
/ 15 декабря 2010

Я выполняю действия, описанные в Блоги MSDN> Блог команды ADO.NET> Пошаговое руководство. Шаблон POCO для Entity Framework .

Я создал простую модель в проекте Keith.Data (и Пространстве имен). Я создал проект Keith.Model и добавил его в решение, удалил файл Class.cs, перетащил файл DataEntities.tt в проект Keith.Model и добавил ссылку на Keith.Model в свой проект Keith.Data. Затем я изменил ссылку пути в файле DataEntities.tt с @ "DataModel.edmx" на @ ".. \ Keith.Data \ DataModel.edmx". Когда я сохранил его, я получил эту ошибку:

Выполнение преобразования: System.Reflection.TargetInvocationException: Исключение было сгенерировано целью вызова. ---> System.IO.FileNotFoundException: невозможно найти файл
в Microsoft.VisualStudio.TextTemplating.VSHost.TextTemplatingService.ResolvePath (String path)
в Microsoft.VisualStudio.TextTemplating.VSHost.TextTemplatingService.ResolvePath (String path)
--- Конец внутренней трассировки стека исключений ---
в System.RuntimeMethodHandle._InvokeMethodFast (метод IRuntimeMethodInfo, объектная цель, аргументы объекта [], SignatureStruct & sig, метод MethodAttributesAttributes, RuntimeType typeOwner)
at System.RuntimeMethodHandle.InvokeMethodFast (метод IRuntimeMethodInfo, объектная цель, аргументы Object [], сигнатура сигнатуры, метод MethodAttributesAttributes, RuntimeType typeOwner)
в System.Reflection.RuntimeMethodInfo.Invoke (Object obj, BindingFlags invokeAttr, Binder Binder, параметры Object [], CultureInfo culture, Логическое skipVisibilityChecks)
в System.Reflection.RuntimeMethodInfo.Invoke (Object obj, BindingFlags invokeAttr, Binder binder, Object [] параметры, CultureInfo culture)
в Microsoft.VisualStudio.TextTemplating6A60439B68BD2BCE671B842FB15E35C4.GeneratedTextTransformation.DynamicHost.ResolvePath (String path)
в Microsoft.VisualStudio.TextTemplating6A60439B68BD2BCE671B842FB15E35C4.GeneratedTextTransformation.MetadataLoader.TryCreateEdmItemCollection (String sourcePath, String [] referenceSchemas, EdmItemClection в Microsoft.VisualStudio.TextTemplating6A60439B68BD2BCE671B842FB15E35C4.GeneratedTextTransformation.MetadataLoader.CreateEdmItemCollection (String sourcePath, String [] referenceSchemas)
в Microsoft.VisualStudio.TextTemplating6A60439B68BD2BCE671B842FB15E35C4.GeneratedTextTransformation.TransformText ()
в Microsoft.VisualStudio.TextTemplating.TransformationRunner.RunTransformation (сеанс TemplateProcessingSession, источник строки, хост ITextTemplatingEngineHost, строка и результат)

Кто-нибудь сталкивался с этим и знает, в чем проблема? Я уверен, что что-то упустил, но за свою жизнь я не могу понять, что.

ТИА

Ответы [ 2 ]

2 голосов
/ 14 января 2011

Я повторил сценарий, который вы упомянули, и получил ту же ошибку, когда путь к файлу .edmx в POCO.tt (DataEntities.tt в вашем сценарии) был неправильным.Дважды проверьте правильность указанного вами пути.

0 голосов
/ 15 декабря 2010

Я использую EF4 / POCO, но все мои права определены в коде, а не в edmx, поэтому я не эксперт в подходе, который вы используете ...

Тем не менее, простой способ определитьЧто делает приложение: скачайте sysinternals Proces Monitor и укажите его на VS - затем посмотрите, к каким файлам он пытается получить доступ (фильтр по DataModel.edmx ).Это, по крайней мере, скажет вам, где он ожидает файл - возможно, ваш относительный путь неверен.

Я уверен, что другие разработчики с большим опытом в этой теме могут дать вам лучший ответ, но вот какЯ бы подошел к решению этого ...

...