繁体   English   中英

从Entity Framework 6 Model中分离POCO Object类和DBContext

[英]Separate POCO Object classes and DBContext from Entity Framework 6 Model

我开始使用Entity Framework 6.0.1版本。 我想将生成的DbContext和POCO模板类与模型中的不同类库分开。 我花了几个小时解决问题但没有成功。

如果我创建一个新的类库,添加EF 6 EntityObject Generator并填充以下模板变量:

SourceCsdlPath = @"..\\..\\DataAccess\\Model.edmx"

构建后在错误列表中获取以下错误:

错误2运行转换:System.IO.FileNotFoundException:无法找到文件文件名:'C:\\ Source \\ EFsource \\ POCO .... \\ DataAccess \\ SZOSZRDBModel.edmx'

服务器堆栈跟踪:位于System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md,Object [] args,Object server,Object []&outArgs)的Microsoft.VisualStudio.TextTemplating.VSHost.TextTemplatingService.ResolvePath(String path)在System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg)

在[0]处重新抛出异常:位于Microsoft.VisualStudio的System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&msgData,Int32类型)的System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg,IMessage retMsg)。 TextTemplating.ITextTemplatingEngineHost.ResolvePath在Microsoft.VisualStudio.TextTemplating31479401930D2C4820ACF71C66B5389A24A5053726798D9718DB676B3FFA30A3454B3CB1EDE2E1C267D5278B1528860C072E81A0E4647BC23993669604048FCD.GeneratedTextTransformation.ApplyUserSettings(UserSettings userSettings)(字符串路径)在Microsoft.VisualStudio.TextTemplating31479401930D2C4820ACF71C66B5389A24A5053726798D9718DB676B3FFA30A3454B3CB1EDE2E1C267D5278B1528860C072E81A0E4647BC23993669604048FCD.GeneratedTextTransformation.TransformText()

错误消息是明确的,但我不知道,如何设置模型路径没有完整的绝对路径。

我不确定,使用最新版本的实体框架是最好的主意......

绝对路径不是必需的。 看起来你的相对路径不正确。 我正在使用EF6.1,我在一个单独的项目中有POCO类。 这就是我在VS 2013中使用它的方法。

  1. 创建了一个类库项目并添加了一个ADO.NET Entity Data Model 该项目将包含DB Context
  2. DBContext项目中添加了新的EF6.x DbContext Generator项。
  3. 创建了一个新的类库项目。 该项目将包含POCO对象。
  4. [Project Name]Model.tt文件从DbContext项目移动到POCO项目。
  5. 编辑了[Project Name]Model.tt文件。 在第5行,我改变了:
    const string inputFile = @"SampleModel.edmx";
    至:
    const string inputFile = @"..\\DbContext\\SampleModel.edmx";
  6. DbContext项目中向POCO项目添加了一个引用。

如果您使用的是VS 2013,则可以调试模板以查看相对路径的解析方式。

  1. .tt文件中添加断点。
  2. 右键单击解决方案资源管理器中的.tt文件,然后选择“Debug T4 Template”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM