我对db4o和c#非常非常新,并且我很难解决如何开始使用它 - 提供的教程对我没什么帮助 - 我理解它的主旨,但我遇到了麻烦了解基本代码的放置位置,例如
using(IObjectContainer db = Db4oEmbedded.OpenFile(YapFileName))
{
//do something with db4o
}
Run Code Online (Sandbox Code Playgroud)
我确信这归结于我缺乏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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
在您的主应用程序中,您可以使用以下内容:
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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
免责声明:我没有尝试编译这段代码,只是涉足到db4o(自从我上次触摸它已经过去了大约6个月......虽然我想再试一次).
希望这在某种程度上有所帮助.我不确定这是不是你想要的.