我正在使用基于 PetaPoco (DotNetNuke 7.0) 的数据访问层。在处理相对简单的对象时,我已经成功地使用了它,但是我现在必须插入一个对象,该对象至少包含一个属性,该属性是其他对象的列表。
例如:
class Person
{
public Person(){}
public string name { get; set; }
public List<Address> addresses { get; set; }
}
class Address
{
...
}
我正在使用的实际对象比上面的示例复杂得多 - 对象中至少有四个复合 List 对象要插入到存储库中。
我想做的是在 SQL 中定义表,并能够像这样对 PetaPoco 进行简单的调用:
public static void AddOrder(Person person)
{
using (IDataContext context = DataContext.Instance())
{
var repository = context.GetRepository<Person>();
repository.Insert(person);
}
}
其背景是对象从 Knockout/jQuery 前端传递到 Web 服务,因此 JSON 字符串被转换为数据对象,然后必须将其存储在数据库中。
我觉得真的有三个问题:
如何编写代表 Person 和包含的地址列表的 SQL 表?
如何编写必要的 PetaPoco 代码来插入 Person 对象及其包含的任何对象?
我是否应该忘记尝试将对象存储在数据库中而只将 JSON 字符串存储在数据库中?
谢谢你看:)