2008-11-11 43 views
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

回答

相关问题