private void AddProductButton_Click(object sender, RoutedEventArgs e)
{
var target = (Web.LocatorProduct)((IEditableCollectionView)ProductSource.DataView).AddNew();
target.Locator = LocatorID;
target.Product = NewProduct.Text.ToUpper();
((IEditableCollectionView)ProductSource.DataView).CommitNew();
}
스택에 추가해서) AddNew() CreateIdentity (의 경우 ArgumentNullException 던지고 (a 생성 된 메소드). Product와 LocatorID는 조합하여 기본 키입니다.
EF에서 데이터베이스 제약 조건을 충족하지 않고 새 항목을 생성 할 수 없다고 생각합니까? 사용자로부터 기본 키를 가져와야하는 경우 어떻게해야합니까?
필자는 응용 프로그램의 모든 계층을 제어 할 수 있으므로 필요한 경우 데이터베이스 디자인에 대한 제안도 환영합니다.
업데이트 : IEditableCollecctionView가 부적절한 것처럼 DataView를 캐스팅 한 것 같습니다. "New"개체를 만들 때 데이터베이스 제약 조건을 위반해서는 안되며,이 경우 'not null'제약 조건입니다. 내 제품 속성에 잘못된 값을 뿌리는 방법을 찾는 것과는 달리, 나는 추가하는 다른 방법을 찾고있을 것입니다. – Sprague