OK, đây là kịch bản. Tôi có 3 bàn. Một gọi là aspnet_Users được gọi là Categories và một bảng liên kết được gọi là User_Categories. aspnet_Users and Categories đều có các khóa chính (UserId và ID tương ứng). Bảng liên kết chỉ có hai cột: CategoryID và UserId, và có các mối quan hệ khóa ngoài được thiết lập cho mỗi cột VÀ tôi có một thiết lập khóa duy nhất cho hai cột trên User_Categories. Điều này thiết lập một mối quan hệ nhiều-nhiều giữa bảng aspnet_Users và bảng Categories. Tôi tạo ra các tập tin edmx thực thể của tôi từ thiết lập cơ sở dữ liệu này, và mọi thứ trông hoàn hảo và hoạt động cho hầu như tất cả các hoạt động.Entity Framework 4 Lỗi: Không thể cập nhật EntitySet vì nó có một DefiningQuery
Điều tôi muốn làm là thêm một danh mục mới từ một biểu mẫu (tự hoạt động một cách hoàn hảo) và đồng thời, kết hợp một người dùng cụ thể với danh mục mới được gửi. Khi tôi cố gắng làm điều này tôi nhận được lỗi trong dòng chủ đề của mình. Đây là mã tôi đang sử dụng để thử điều này (ctx là đối tượng ngữ cảnh đối tượng của tôi):
public ActionResult Create(Category category, Guid userId)
{
aspnet_Users user = ctx.aspnet_Users.SingleOrDefault(x => x.UserId == userId);
ctx.Categories.AddObject(category);
user.Categories.Add(category);
ctx.SaveChanges();;
return RedirectToAction("Index");
}
Tại sao tính năng này không hoạt động?
điều gì xảy ra nếu bạn nhận được điều này trên Chế độ xem thay vì Bảng !! – Necronet
@Necronet, xin lỗi tôi không thể nói. Chế độ xem cũng có thể xác định khóa, phải không? Bạn có một xác định trên quan điểm của bạn? –
có nhưng EF dường như đã thiết lập khóa của tôi một cách tự động (và ngẫu nhiên), tôi đã cố gắng chỉnh sửa dmx bằng trình soạn thảo XML nhưng mỗi khi tôi cập nhật nó đặt lại khóa chính, không biết tại sao ... – Necronet