2010-12-23 58 views
0

我有兩個表tblRole和tblUser。 tblUser有一個與「tblRole」相關的「RoleID」。如何使用ado.net中無法定義兩個對象之間的關係EF

follwing一些主代碼:

  tblUserDao userDao = new tblUserDao(); 
      tblRoleDao roleDao = new tblRoleDao(); 
      var usr = userDao.GetUserByID(8); 
      if (usr != null) 
      { 
       usr.RealName = "XXXX"; 
       var role = roleDao.GetRoleByID(4); 
       usr.tblRole = role; 
       isSuc = userDao.Updata(usr); 
      } 

public tblUser GetUserByID(int userID) 
    { 
     using (TOMSDBEntities tomsEntities = new TOMSDBEntities()) 
     { 
      var tUser = tomsEntities.tblUser.Include("tblRole").Where(u => u.UserID == userID).FirstOrDefault(); 
      return tUser; 
     } 
    } 

public bool Updata(tblUser model) 
    { 
     using (TOMSDBEntities tomsEntities = new TOMSDBEntities()) 
     { 
      tomsEntities.GetObjectByKey(model.EntityKey); 
      tomsEntities.ApplyPropertyChanges(model.EntityKey.EntitySetName, model); 

      return (tomsEntities.SaveChanges() > 0); 
     } 
    } 

現在,報告一個錯誤,這是因爲它們連接到不同的ObjectContext對象不能被限定的兩個對象之間的關係。

回答

0

錯誤消息prety不言自明的,對象從您的GetUserByID和GetRoleById返回連接到不同DataContexts .. 我的猜測是,你正在使用不同的存儲庫的角色和用戶..

要麼考慮合併它們放到一個具有相同上下文的存儲庫中,或者在別處創建上下文,並將其作爲參數傳遞給存儲庫。

+0

嗨亞歷山大塔蘭, – Aden 2010-12-23 07:09:35

相關問題