基本db4o问题

3

我对db4o和c#都非常陌生,开始使用它们时遇到了很多问题。提供的教程并没有给我太多帮助。我理解了大概的意思,但是不知道应该把基础代码放在哪里,例如

using(IObjectContainer db = Db4oEmbedded.OpenFile(YapFileName))
{
   //do something with db4o
}

我相信这是由于我缺乏c#知识,但如果有人能指导我正确的方向(甚至是一个带有db4o实现项目示例的优秀教程),那将非常棒:)
我来自Web开发背景,所以数据库的概念不是问题,但出于某种原因,我似乎无法完全理解c#的“做事方式”。
1个回答

5

这实际上取决于您想要构建什么。您只是在玩测试数据库还是有一个特定的项目/程序需要构建?访问数据库应该像任何其他项目一样对待。

例如,如果您正在使用数据库存储员工,并希望返回所有姓氏为“Smith”的员工,则可以执行以下操作(非常基本的示例,设计不好...只是想展示代码放置在哪里以使事情正常工作):

public class Employee
{
    public FirstName { get; set; }
    public LastName { get; set; }

    public Employee(string firstName, string lastName)
    {
        FirstName = firstName;
        LastName = lastName;
    }
}

public static class EmployeeFactory
{
    public static IEnumerable<Employee> GetEmployeesNamedSmith(IObjectContainer db)
    {
        var employees = from Employee e in db
                        where e.LastName.Equals("Smith")
                        select e;

        foreach (var emp in employees)
        {
            yield return emp;
        }
    }
}

在您的主应用程序中,您可以像这样编写代码:

在您的主应用程序中,您可以像这样编写代码:

public static void Main()
{
    var config = Db4oEmbedded.NewConfiguration();

    // code to create and add employees goes here.

    // access employees that have Smith as the last name

    using (var db = Db4oEmbedded.OpenFile(config, "database.db4o"))
    {
        foreach (var e in EmployeeFactory.GetEmployeesNamedSmith(db))
        {
            Console.WriteLine(e.FirstName + " " + e.LastName);
        }
    }
}

免责声明:我没有尝试编译这段代码,只是稍微涉猎了一下db4o(距离上次接触已经有6个月了...虽然我想再试一次)。

希望这能在某种程度上帮到你。我不确定这是否是你要找的内容。


好的,是的,主要是让我理解所有这些新概念(C#、不同于MySQL等)。非常感谢,你的解释让我更加清晰明了 :) - E Steven
@E Steven:没问题。你的问题重新点燃了我对db4o的兴趣,所以谢谢你! - Jason Down

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接