簡體   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