Linq: Cannot add an entity with a key that is already in use
От: vladpol Украина http://vlad-mislitel.livejournal.com/
Дата: 08.09.11 19:43
Оценка:
[Table(Name = "aspnet_Users")]
    public class ProfessionalUser
    {
        [Column(IsPrimaryKey = true, IsDbGenerated = true)]
        public Guid UserID { get; set; }
        [Column(UpdateCheck = UpdateCheck.Never)]
        public string UserName { get; set; }
        [Column(UpdateCheck = UpdateCheck.Never)]
        public string LoweredUserName { get; set; }
        [Column(UpdateCheck = UpdateCheck.Never)]
        public string MobileAlias { get; set; }
        [Column(UpdateCheck = UpdateCheck.Never)]
        public bool IsAnonymous { get; set; }
        [Column(UpdateCheck = UpdateCheck.Never)]
        public DateTime LastActivityDate { get; set; }
        [Column (UpdateCheck = UpdateCheck.Never)]
        public Guid ApplicationId { get; set; }

        [Column( IsVersion = true)]
        private Binary TableVersion { get; set; }
    }



 public class ProfessionalUsersRepository : IProfessionalUsersRepository
    {
        private Table<ProfessionalUser> usersTable;
        private DataContext dataContext;
        private string fileOrServerOrConnection;

        public ProfessionalUsersRepository()
        {
            fileOrServerOrConnection = WebConfigurationManager.ConnectionStrings["MainDb"].ConnectionString;
            dataContext = new DataContext(fileOrServerOrConnection);
            usersTable = dataContext.GetTable<ProfessionalUser>();
            var u = usersTable.First();
            var u1 = new ProfessionalUser();
            u1.ApplicationId = u.ApplicationId;
            u1.IsAnonymous = u.IsAnonymous;
            u1.LastActivityDate = u.LastActivityDate;
            u1.LoweredUserName = u.LoweredUserName;
            u1.MobileAlias = u.MobileAlias;

            u1.UserName = u.UserName  + "a";
            u1.UserID = u.UserID;

           usersTable.Attach(u1); //Cannot add an entity with a key that is already in use

            usersTable.Context.Refresh(RefreshMode.KeepCurrentValues, u1);
            usersTable.Context.SubmitChanges();

        }
     }


Где я не прав??
С уважением, Владислав Полищук
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.