我有一个有用户的数据库。用户有物品。
这些项目可以积极改变。如何访问集合类型格式的项?对于用户,我在实例化时填充所有的用户属性。如果我在实例化时加载用户的项,并且项发生了更改,它们将有旧的数据。
我在想,也许我需要一个ItemCollection类,并且在user类之外有一个字段/属性,这样就可以遍历用户的所有条目,我可以使用一个foreach循环。
那么,我的问题是,使用某种集合从数据库访问项目的最佳实践/最佳方法是什么?在访问特定项时,它需要获取最新的数据库信息,当用户执行foreach循环时,必须提供最新的项信息。
我想做的是
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数据文本并获取信息。
当我实现一个实现接口ItemCollection的新类“IList”时,我需要做什么来获得它返回的项?
使用User.Items3,是在公共项下实现的这个索引方法。索引方法是否应该使用linq.Skip操作符来获取数据库中项的索引?
我只是对将业务对象集合映射到数据库感到有点困惑。
发布于 2010-03-23 14:23:58
您签出LINQ或实体框架了吗?
它们都提供了与您所需的功能类似的功能:
// Get first user with Id of 5
var users = _dbContext.Users.FirstOrDefault(u => u.Id == 5);
// Loop through all users in the context
foreach(var user in _dbContext.Users)
{
    foreach(var item in user.Items)
    {
        // Work with your item here.
    }
}您只需确保您管理您的上下文,以便您有最新的信息。
https://stackoverflow.com/questions/2500605
复制相似问题