Tại sao không làm điều này:
public static void Init(kho lưu trữ params TEntity[]) trong đó TEntity : Thực thể
{
foreach (Mục TEntity trong kho)
{
Kho lưu trữ- Rep = Kho lưu trữ mới
- ();
}
}
Đoạn mã trên không thể được biên dịch:Không thể giải quyết mục nhập biểu tượng
Nhưng điều này hoạt động:
public static void Init(Thực thể TEntity) trong đó TEntity : Thực thể
{
Kho lưu trữ Rep = Kho lưu trữ mới();
}
biên tập
Tôi đang chỉnh sửa OP để hiểu vấn đề đầy đủ hơn. Chúng tôi đang gặp một số vấn đề với bối cảnh Entity Framework Db được tạo từ nhiều kho lưu trữ. Hiện tại chúng ta truy cập kho lưu trữ như sau:
Kho lưu trữ Rep = Kho lưu trữ mới()
Kho lưu trữ đại diện = Kho lưu trữ mới()
Vì có mối quan hệ giữa sản phẩm và tài khoản nên EF nhắc nhở các đối tượng được gắn vào các ngữ cảnh khác nhau. Do đó, chúng tôi đã cố gắng giải quyết vấn đề này bằng cách tích hợp quyền truy cập kho lưu trữ vào đơn vị mẫu công việc:
Đây là một ví dụ về những gì tôi đang cố gắng đạt được:
lớp công khai UnitOfWork
{
Danh sách được bảo vệ Kho lưu trữ = Danh sách mới();
riêng tư chỉ đọc DbContext _context;
UnitOfWork được bảo vệ()
{
_context = SqlDbContext mới();
}
public static UnitOfWork Init(params TEntity[] kho lưu trữ) trong đó TEntity : Thực thể
{
UnitOfWork uow = new UnitOfWork();
foreach (Mục TEntity trong kho)
{
Kho lưu trữ- Rep = Kho lưu trữ mới
- ();
uow.Repositories.Add(rep);
}
trở về ôi;
}
IRepository công khai GetRepository() trong đó T : Thực thể
{
trả về Repositories.OfType().Single();
}
}
Vì vậy, chúng ta có thể truy cập kho lưu trữ của mình như thế này:
GetRepository().GetById(1);
GetRepository().GetById(123434);
mục
là một loại实例, nhưng bạn cần một tham số loại để tạo thông số chung của mình Kho lưu trữ
lớp cá thể.
Tôi là một lập trình viên xuất sắc, rất giỏi!