Основные проблемы с db4o - PullRequest
3 голосов
/ 20 июля 2011

Я очень плохо знаком с db4o и c # в целом, и мне очень трудно понять, как начать его использовать - предоставленное руководство не очень мне помогает - я понимаю суть этого, ноУ меня проблемы с пониманием того, куда поместить основной код, например,

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

Я уверен, что это связано с моим отсутствием знаний C #, но если кто-то может указать мне правильное направление (даже приличный учебникс полными примерами, чтобы я мог видеть проект с реализованным db4o), который был бы великолепен:)

Я пришел из фона веб-разработки, так что идея базы данных не проблема, но по некоторым причинам я не могу показатьсячтобы полностью понять c # «способ делать вещи»

1 Ответ

5 голосов
/ 20 июля 2011

Это действительно сводится к тому, что вы пытаетесь построить.Вы просто играете, чтобы протестировать базу данных, или у вас есть конкретный проект / программа, которую вы пытаетесь создать?Доступ к базе данных должен обрабатываться так же, как любой другой проект.

Например, если вы используете базу данных для хранения сотрудников и хотите вернуть всех сотрудников с фамилией «Смит», вы можетесделать что-то вроде этого ( очень простой пример и не очень хороший дизайн ... просто пытаюсь показать, куда код пойдет, чтобы все заработало ):

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 месяцев с тех пор, как я последний раз его трогал ... хотя я хотел бы попробоватьэто снова).

Надеюсь, это поможет каким-то образом.Я не уверен, что это то, что вы искали.

...