0
首先,讓我們定義一些表工作:實體框架:用FK的(?爲什麼它們會隱藏)所有的
用戶表將存儲有關用戶的信息:
Users
- UserID (int, PK)
- ...
UserTasks是表,用於存儲與用戶相關聯的任務:
UserTasks
- userID (int, FK to Users table)
- taskName (varchar)
當我生成使用ADO實體框架的UserTasks表,我會得到一個類,它看起來像這樣:
UserTasks
- TASKNAME(串)
- 用戶(Users對象的集合)
注:有沒有被在UserTasks表中生成用戶ID。現在我們假設我需要插入一個新的用戶任務...我該怎麼做?我沒有訪問用戶ID FK場,所以我唯一的選擇就是做一個檢查,並填充用戶對象,然後傳遞給我的任務目標,如下所示:
//get the user we are interested in
var user = (from u in context.Users
where u.userID == 2
select u).FirstOrDefault();
//create the new task
UserTasks newTask = new UserTasks();
newTask.taskName = "New Task";
newTask.User = user;
上述的問題是我正在做一個額外的和不必要的數據庫調用來填充我的用戶對象。無論如何,以某種方式創建一個新的映射到我的用戶ID字段,仍然保持用戶對象?
感謝
--Ryan