Tôi đang gặp một số khó khăn trong việc sử dụng cùng một cơ sở dữ liệu để hợp tác. Đây là kịch bản:Mã MVC/Thực thể-Nhiều bối cảnh đầu tiên với tính toàn vẹn tham chiếu giữa chúng
Trong ứng dụng MVC sử dụng EF 6 Mã-Đầu tiên, có một cơ sở dữ liệu có hai ngữ cảnh. - Ngữ cảnh đầu tiên là bối cảnh ApplicationIdentity với đối tượng ApplicationUser tùy chỉnh. - Bối cảnh thứ hai là bối cảnh kinh doanh, nắm giữ một mô hình Đội bóng:
public class Team
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public ApplicationUser TeamLeader { get; set; }
public string Name { get; set; }
public virtual ICollection<ApplicationUser> TeamMembers { get; set; }
public bool IsActive { get; set; }
}
Quản lý di cư đã được khó khăn, mặc dù câu trả lời này đã được chứng minh rất hữu ích: Multiple DB Contexts in the Same DB and Application in EF 6 and Code First Migrations
Vấn đề là bối cảnh nhận dạng tiếp tục cố gắng tạo bảng Nhóm trong quá trình di chuyển của nó và sau đó ngữ cảnh Kinh doanh tiếp tục cố gắng tạo bản ghi Người dùng ứng dụng trùng lặp khi nhóm mới được tạo, được điền và lưu.
Những gì tôi muốn là cho các quy tắc sau đây được áp dụng:
- Các IdentityContext có trách nhiệm tạo và thay đổi giản đồ của chỉ các bảng Identity. Nó không có kiến thức về các đối tượng (hay còn gọi là Team) ngoài phạm vi trách nhiệm của nó.
- Ngữ cảnh nghiệp vụ chịu trách nhiệm về tính toàn vẹn tham chiếu giữa các đối tượng của nó và IdentityObjects, nhưng nó không thể chỉnh sửa các bản ghi trong bảng Identity. Nếu người dùng không tồn tại, lỗi, không tạo.
Có ai có bất kỳ mẹo nào về cách làm cho các ngữ cảnh này trở nên tốt đẹp với nhau không? Tôi thực sự không muốn phá vỡ tính toàn vẹn tham chiếu giữa các đối tượng Identity và các đối tượng nghiệp vụ.
@Cola không đề nghị từ ngẫu nhiên bolding, điều đó không cải thiện khả năng đọc trong dù sao. – CodeCaster