사용자가있는 데이터베이스가 있습니다. 사용자가 항목이 있습니다.IList <Item> 컬렉션 클래스 데이터베이스 액세스
이 항목은 적극적으로 변경할 수 있습니다. 컬렉션 형식 형식의 항목에 어떻게 액세스합니까? 사용자의 경우 인스턴스화시 모든 사용자 속성을 채 웁니다. 인스턴스화시 사용자 항목을로드하고 항목이 변경되면 이전 데이터가 있습니다.
저는 ItemCollection 클래스가 필요하고 foreach 루프를 사용할 수있는 모든 사용자 항목을 트래버스하는 방법으로 사용자 클래스의 필드/속성을 분리해야한다고 생각했습니다.
그래서, 내 질문은 어떤 종류의 컬렉션을 사용하여 데이터베이스에서 항목에 액세스하는 가장 좋은 방법/최선의 방법은 무엇입니까? 특정 Item에 액세스 할 때 최신 데이터베이스 정보를 가져와야하고 사용자가 foreach 루프를 수행 할 때 최신 항목 정보를 사용할 수 있어야합니다.
e.e. 내가
Console.WriteLine(User.Items[3].ID); returns 5.
//this updates the item information and saves it to the database.
User.Items[3].ID = 13;
//Add a new item to the database.
User.Items.Add(new Item { id = 17});
foreach (Item item in User.Items) {
//this would traverse all items in the database.
//not some cached copy at the time of instantiation of the user.
}
편집을 할 노력하고있어 무엇 : 미안 해요, 난이 질문에 약간 잘못 작성했습니다. 현재 Linq를 사용하고 있지만 비즈니스 개체에 클래스 매핑이 있습니다. 비즈니스 개체를 트래버스 할 때 Linq datacontext로 이동하여 정보를 얻고 싶습니다.
인터페이스 IList를 구현하는 새 클래스 "ItemCollection"을 구현할 때 항목을 반환하려면 어떻게해야합니까?
User.Items [3]에서는 public Item this [int index] 메서드로 구현됩니다. 인덱스 메서드가 linq.Skip 연산자를 사용하여 데이터베이스에서 항목의 인덱스를 가져와야합니까?
비즈니스 개체 컬렉션을 데이터베이스에 매핑하는 것에 대해 약간 혼란 스러울뿐입니다.
Entity Framework를 사용하고 있습니까? – kervin
아니요,하지만 Linq to SQL – Mike