首先,让我们定义几个表:
用户表将存储有关用户的信息:
Users
- UserID (int, PK)
- ...
UserTasks 是一个存储与用户关联的任务的表:
UserTasks
- userID (int, FK to Users table)
- taskName (varchar)
当我使用 ADO 实体框架生成 UserTasks 表时,我将得到一个如下所示的类:
UserTasks
- taskName(字符串)
- 用户(用户对象的集合)
注意:在 UserTasks 表中没有生成用户 ID。所以现在让我们假设我需要插入一个新的用户任务......我该怎么做?我无权访问 userID 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;
上面的问题是我正在做一个额外的和不必要的数据库调用来填充我的用户对象。有没有办法以某种方式创建到我的 userID 字段的新映射并仍然保留 User 对象?
谢谢
——瑞安