簡體   English   中英

如何將自己的類用作edmx模型類?

[英]How can I use my own classes as edmx model classes?

我正在使用EF 6。

我想使用自己的域類作為edmx模型類,因此我刪除了tt生成的模型類,並將edmx build Action更改為None。

當我嘗試執行select時,我得到MetadataException

DbContext context = new DbContext("name=BaseObjectsEntities");
var u = context.Set<User>().Where(x => x.Id == 1).FirstOrDefault();

與生成的tt模型類完美配合,但不適用於我自己的類。

我應該做什么或配置我的類與edmx鏈接。

ps:我的類的類和屬性名稱已經等於edmx了。

我解決了我的問題,

這些是我做的步驟:

  • 如果你還沒有

    創建自己的域類;

  • 創建數據庫

    創建表格

  • 創建Edmx

    現在仔細聆聽,當你最終確定edmx的創建時,visual studio將在設計模式下打開edmx,不保存,不關閉,不做任何事情,只更改實體模型的名稱及其屬性(在圖塊中)代表模型),確保實體的名稱和它的屬性是在域中指定的,稍后我將告訴為什么不保存或關閉。

不要保存或關閉設計窗口,如果這樣做並且您的域類在同一個項目中,它們將被創建emdx時生成的.tt類覆蓋。

刪除聚合到emdx並且不保存的所有.tt文件。

  • 現在右鍵單擊Edmx> Properties

擦除“自定義工具”中寫入的內容,並確保構建操作是EntityDeploy

刪除自定義工具中寫入的文本時,單擊“輸入”,然后構建解決方案

現在它會起作用。

  • 我忘了提到如果這些步驟不起作用,則有一個秘密步驟:

從visual studio和項目文件夾中刪除項目,重新創建它,然后重新啟動初始步驟。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM