Tôi có một mối quan hệ một-nhiều uni-directional giữa Liên và điện thoại được định nghĩa như thế này:Uni-directional một-nhiều mối quan hệ với Mã Đầu tiên
class Contact {
int ContactId {get; set}
ICollection<Phone> Phones {get; set}
}
class Phone {
int PhoneId {get; set;}
string PhoneNumber {get; set;}
}
Bây giờ trong lớp miền, tôi cố gắng phải làm như sau:
someContact.Phones.Remove(somePhone);
và khi tôi cố gắng để gọi context.SaveChanges()
tôi nhận được một ngoại lệ vì mối quan hệ được định nghĩa là cần thêm (. ví dụ như một chiếc điện thoại không thể tồn tại mà không cần một số liên lạc).
Làm cách nào tôi có thể giải quyết vấn đề này mà không cần sử dụng khóa ngoài hoặc thuộc tính điều hướng trong Điện thoại mà không cần gọi DbSet<Phone>.Remove(Phone)
trước khi gọi SaveChanges()
?
không thể bạn chỉ cần thêm một 'RemovePhone() '-Method để liên hệ? Và bạn muốn điều gì xảy ra nếu cả ông và bà Smith đều ở trong Cơ Sở Dữ Liệu của bạn cùng điện thoại và chỉ có ông Smith mới xóa tài khoản của mình? – efkah
Bạn có muốn xóa điện thoại khỏi cơ sở dữ liệu hoặc chỉ cần hủy liên kết khỏi liên hệ không? EF nên biết rằng điện thoại sẽ bị xóa nếu bạn không xác định mối quan hệ giữa nó và danh bạ? – lintmouse