2010-04-14 39 views
6

Cho phép nói rằng tôi thuộc nhóm Nhóm lớp học có chứa 0 hoặc nhiều hơnNgười chơi.Làm thế nào để xác định một bộ sưu tập trong POCO trong Entity Framework 4?

Các chơi lớp rất dễ dàng:

public class Player 
{ 
    public long Id { get; set; } 
    public string Name { get; set; } 
    public Team Team { get; set; } 
} 

Nhưng whats tốt nhất để xác định Đội lớp học?

Lựa chọn 1

public class Team 
{ 
    public long Id { get; set; } 
    public string Name { get; set; } 
    public ICollection<Player> Players { get; set; } 
} 

Phương án 2:

public class Team 
{ 
    public Team() 
    { 
     Players = new Collection<Player>(); 
    } 

    public long Id { get; set; } 
    public string Name { get; set; } 
    public ICollection<Player> Players { get; set; } 
} 

Lựa chọn 3:

public class Team 
{ 
    public long Id { get; set; } 
    public string Name { get; set; } 
    public IQueryable<Player> Players { get; set; } 
} 

Tùy chọn 4:

Trả lời

7

Đầu tiên, hãy phân chia với các tùy chọn không được chấp nhận. Tùy chọn 3 không thực sự đúng; chúng ta đang ở trong không gian đối tượng, không phải là không gian LINQ to Entities. Tùy chọn 4 cũng không đúng; ObjectSet là để sử dụng trên ObjectContext, không phải trên loại POCO.

Rằng 1 và 2. Cả hai đều hoạt động chính xác. Khung thực thể sẽ khởi tạo bộ sưu tập khi thực hiện các cá thể liên quan từ cơ sở dữ liệu nếu bạn chọn không. Tuy nhiên, tùy chọn 2 có lợi thế là bạn có thể sử dụng Team mới trong mã của riêng bạn trước khi lưu nó vào cơ sở dữ liệu và đọc lại. Vì vậy, tôi có lẽ sẽ chọn cái đó.

Các vấn đề liên quan