저는 Windows Phone 7 개발을 처음 사용하고 SQL에서 Linq에 문제가 있습니다. 개체를 업데이트하려고하지만 작동하지 않습니다. 나는 내가 원하는 속성을 업데이트하고 수정하려고하는 객체를 얻습니다. 그러나 SaveChanges를 호출하면 데이터가 데이터베이스에 업데이트되지 않습니다.WP7에서 Linq-To-SQL이 업데이트되지 않습니다.
이미 ISETool을 사용하여 데이터베이스를 다운로드하고 데이터가 전혀 업데이트되지 않았는지 확인했습니다.
쿼리 및 삽입 방법이 잘 작동한다는 것은 이상하지만 왜 업데이트하지 않는지 모르겠습니다.) (Updates.Count
[Table]
public class Entrada : INotifyPropertyChanged, INotifyPropertyChanging
{
private int _Id;
[Column]
private int _DiaId;
[Column]
private int _ProjetoId;
private EntityRef<Dia> _Dia;
private EntityRef<Projeto> _Projeto;
private DateTime _Chegada;
private DateTime? _Saida;
[Column(IsPrimaryKey = true, IsDbGenerated = true, CanBeNull = false, DbType = "INT NOT NULL Identity")]
public int Id
{
get
{
return _Id;
}
set
{
if (value != _Id)
{
NotifyPropertyChanging("Id");
_Id = value;
NotifyPropertyChanged("Id");
}
}
}
[Column(CanBeNull=false)]
public DateTime Chegada
{
get
{
return _Chegada;
}
set
{
if (value != _Chegada)
{
_Chegada = value;
NotifyPropertyChanged("Chegada");
}
}
}
[Association(Storage = "_Dia", ThisKey = "_DiaId", OtherKey="Id", IsForeignKey=true)]
public Dia Dia
{
get { return _Dia.Entity; }
set
{
NotifyPropertyChanging("Dia");
_Dia.Entity = value;
if (value != null)
{
_DiaId= value.Id;
}
NotifyPropertyChanging("Dia");
}
}
[Column(CanBeNull=true)]
public DateTime? Saida
{
get
{
return _Saida;
}
set
{
if (value != _Saida)
{
_Saida = value;
NotifyPropertyChanged("Saida");
}
}
}
[Association(Storage = "_Projeto", ThisKey = "_ProjetoId", OtherKey = "Id", IsForeignKey = true)]
public Projeto Projeto
{
get
{
return _Projeto.Entity;
}
set
{
NotifyPropertyChanging("Projeto");
_Projeto.Entity = value;
if (value != null)
{
_ProjetoId = value.Id;
}
NotifyPropertyChanging("Projeto");
}
}
public event PropertyChangedEventHandler PropertyChanged;
public event PropertyChangingEventHandler PropertyChanging;
private void NotifyPropertyChanged(String propertyName)
{
if (null != PropertyChanged)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
private void NotifyPropertyChanging(string propertyName)
{
if (PropertyChanging != null)
{
PropertyChanging(this, new PropertyChangingEventArgs(propertyName));
}
}
}
//UPDATE CODE:
var query = (from e in timeSheetDB.Entradas where e.Dia.Id == this.Dia.Id && (!e.Saida.HasValue) select e);
var entrada = query.FirstOrDefault();
if (entrada != null)
{
entrada.Saida = DateTime.Now;
}
timeSheetDB.SubmitChanges();
가 나는 또한 GetChangeSet()를 확인,하지만 난 당신이 감사 :-) 나를 도울 수 있기를 바랍니다 0 항상 :.
다음은 엔티티와 업데이트 방법 코드입니다 너희들!
대단히 감사합니다! 일부 속성에서 PropertyChanging을 발생시키는 것을 정말로 잊었습니다! 문제는 내 앞에 있었고 나는 그것을 볼 수 없었다 :-) – rmoreira