Đây là mã của tôi, rất đơn giản ...Mã đầu tiên - Không thể chèn các giá trị NULL vào cột 'Id'
var newUser = new User();
newUser.Id=id;
newUser.Email = email;
this.DataContext.Set<User>().Add(newUser);
this.DataContext.SaveChanges();
Các lỗi tôi nhận được là một SQLException tại this.DataContext.SaveChanges();
nói rằng:
Không thể chèn giá trị NULL vào cột 'Id', bảng 'xxxxx.dbo.Users'; cột không cho phép null. INSERT không thành công.
tôi đã sửa lỗi và phát hiện ra rằng có giá trị trong Id & Email trong newuser tại this.DataContext.Set<User>().Add(newUser);
Nếu đây là trường hợp, như thế nào là giá trị trở thành null?
Các lỗi stack trace:
[DbUpdateException: An error occurred while updating the entries. See the inner exception for details.]
System.Data.Entity.Internal.InternalContext.SaveChanges() +204
System.Data.Entity.Internal.LazyInternalContext.SaveChanges() +23
System.Data.Entity.DbContext.SaveChanges() +20
tôi đã không thể hiểu hoặc giải quyết này ....
có chân thành đánh giá cao bất kỳ giúp đỡ trong việc này ...
Trân Arnab
Giải pháp
Ok, cảm ơn Ladislav đã chỉ cho tôi đúng hướng: Thêm thuộc tính [DatabaseGenerated(DatabaseGeneratedOption.None)]
giải quyết được sự cố.
Loại id là gì? Có thể nó là một cái gì đó là đi sai với việc tạo ra chìa khóa trong cơ sở dữ liệu? –
loại là bigint trong sqlserver, trong lớp người dùng nó là dài .. Ngoài ra khi tôi sử dụng khung thực thể bình thường mà không có codefirst, nó hoạt động – Arnab
tham số id cũng dài – Arnab