![](/img/trans.png)
[英]How can I 'hide' built in classes when I have written my own wrappers to said classes?
[英]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文件。
擦除“自定義工具”中寫入的內容,並確保構建操作是EntityDeploy
刪除自定義工具中寫入的文本時,單擊“輸入”,然后構建解決方案
現在它會起作用。
從visual studio和項目文件夾中刪除項目,重新創建它,然后重新啟動初始步驟。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.