我对db4o非常陌生,而且对于c#一般而言,我很难解决如何开始使用它 - 提供的教程并没有帮助我很多 - 我理解它的主旨,但是我无法理解放置基本代码的位置,例如
using(IObjectContainer db = Db4oEmbedded.OpenFile(YapFileName))
{
//do something with db4o
}
我确信这归结于我缺乏c#知识,但如果有人能指出我正确的方向(即使是一个体面的教程,有完整的例子,所以我可以看到一个实现了db4o的项目),这将是很棒的: )
我来自网络开发背景,因此数据库的想法没有问题,但由于某些原因我似乎无法完全理解c#的做事方式
答案 0 :(得分: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个月了......虽然我想再试一次)。
希望这在某种程度上有所帮助。我不确定这是不是你想要的。