public partial class Datagrid
{
public int Id { get; set; }
public string Name { get; set; }
public string Location { get; set; }
public Nullable<bool> IsChecked { get; set; }
}
public partial class SampleDbContext : DbContext
{
public SampleDbContext()
: base("name=SampleDbContext")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public virtual DbSet<Datagrid> Datagrids { get; set; }
}
내가 한 줄에 체크 박스를 포함하는 목록보기가 어디 WPF 응용 프로그램을 다음과 같이 내가 엔티티 프레임 워크에 의해 생성 된 클래스가 있습니다. 나는 buttonclick에 체크 박스의 값을 얻기위한 코드를 작성했다. 확인란을 선택한 값으로 데이터베이스를 업데이트하려고하면 아무 작업도 수행하지 않습니다. 제발 도와주세요 .. 코드의 일부를 강조해라. 체크 상자의 모든 선택이 잘 작동한다. 나는 프론트 엔드의 체크 박스에서 사용자가 체크하는 값으로 데이터베이스의 Ischecked 값을 업데이트하기를 원한다. 그래서 모든
try
{
int i = 0;
IEnumerable<CheckBox> myBoxes = FindVisualChildren<CheckBox>(this);
foreach (CheckBox cb in myBoxes)
{
Datagrid dg = db.Datagrids.ToList()[i];
dg.Id=dg.Id;
dg.Name = dg.Name;
dg.Location = dg.Location;
dg.IsChecked = cb.IsChecked;
db.Datagrids.Add(dg);
db.SaveChanges();
i++;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
:
대신 :이 줄을 넣어? 어쩌면 web.config의 연결 문자열이 실수로 다른 데이터베이스/인스턴스를 가리키고 있을까요? 그것은 나에게 많이 일어난다. – ilans
데이터베이스에서 값을 업데이트하려고하지만 값을 가져오고 업데이트 대신 엔티티를 생성/삽입하도록 표시하는 .Add를 사용하는 것보다 실제로 코드가 의미를 갖지 않습니다. –
db.Datagrids.ToList() [i]를 사용하여 데이터베이스에 uneccesary querys를 수행하고 있기 때문에 코드가 빠르다는 또 다른 문제는이 행이 먼저 datatable Datagrid에서 모든 항목을 가져 오지만 특정 인덱스에서만 interessted 인 것입니다. EF에 대한 자습서를 읽는 것이 올바른 방법입니다. –