我对 db4o 和 C# 总体上非常陌生,并且很难弄清楚如何开始使用它 - 提供的教程对我帮助不大 - 我理解它的要点,但遇到了麻烦了解在哪里放置基本代码,例如

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

我确定这归结于我缺乏 c# 知识,但是如果有人能指出我正确的方向(即使是一个带有完整示例的体面教程,所以我可以看到一个实现了 db4o 的项目),那就太好了

我来自 web 开发背景,所以数据库的想法是没有问题的,但由于某种原因,我似乎无法完全理解 c# 的“做事方式”

最佳答案

这真的归结为您要构建的内容。您只是在测试数据库还是在尝试构建特定的项目/程序?访问数据库应与任何其他项目对待它的方式相同。

例如,如果您正在使用数据库来存储员工,并且您希望返回姓氏为“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# - 基本的 db4o 问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6755857/

10-10 16:24