public void Init() { _unitofwork.User.DeleteAll(); var item = new User(); item.Name = "user1"; item.Hight = 170; item.Photo = ""; item.Birthday = new DateTime(1977, 12, 31, 0, 0, 0); var dept = _unitofwork.Dept.FindAll(true).First(); item.Dept = dept; item.UserRelProjs = new List <UserRelProj>(); var projs = _unitofwork.Proj.FindAll(true); foreach (var proj in projs) { var mapping = new UserRelProj(); // mapping.UserId = item.Id; // mapping.ProjId = proj.Id; mapping.User = item; mapping.Proj = proj; item.UserRelProjs.Add(mapping); } _unitofwork.User.Create(item); _unitofwork.Save(); }
public void Update(User entity) { // var ori = _unitofwork.User.Single(m => m.Id == entity.Id); var ori = _unitofwork.User .Include(m => m.Dept) .Include(m => m.UserRelProjs) // .ThenInclude(m => m.Proj) //The instance of entity type 'Proj' cannot be tracked because another instance is already being tracked .SingleOrDefault(m => m.Id == entity.Id); ori.UserRelProjs.Clear(); // _unitofwork.User.Update(ori); // _unitofwork.Save(); // entity.UserRelProjs = new List<UserRelProj>(); var projs = _unitofwork.Proj .FindByCondition(m => entity.Projs.Contains(m.Id)); foreach (var proj in projs) { var mapping = new UserRelProj(); // mapping.UserId = entity.Id; // mapping.ProjId = proj.Id; mapping.User = ori; // entity ok too mapping.Proj = proj; ori.UserRelProjs.Add(mapping); // entity.UserRelProjs.Add(mapping); //unsuccess! } // //Error Null TypeMapping in Sql Tree ... // var mappings = _unitofwork.Proj // .FindByCondition(m => entity.Projs.Contains(m.Id)) // .Select(m => new UserRelProj // { // // UserId = entity.Id, // // ProjId = m.Id, // User = ori, // Proj = m // }); // ori.UserRelProjs = mappings.ToList(); _unitofwork.User.Entry(ori).CurrentValues.SetValues(entity); _unitofwork.Save(); }
public void Create(User entity) { // var dept = _unitofwork.Dept.Single(m=>m.Id==entity.DeptId); // entity.Dept = dept; var projs = _unitofwork.Proj .FindByCondition(m => entity.Projs.Contains(m.Id), true); entity.UserRelProjs = new List <UserRelProj>(); foreach (var proj in projs) { var mapping = new UserRelProj(); // mapping.UserId = item.Id; // mapping.ProjId = proj.Id; mapping.User = entity; //entity ok too mapping.Proj = proj; //entity.UserRelProjs.Add(mapping); unsuccess! entity.UserRelProjs.Add(mapping); } _unitofwork.User.Create(entity); _unitofwork.Save(); }