1

我有一组相互关联的强大对象,我需要找出最好的方法来处理将它们保存到数据库并仍然考虑数据约束等问题。

假设我有以下课程:

class Foo
{
    public int Id { get; set; }
    public int BarId { get; set; }
    Bar _bar;
    public Bar Bar 
    {
        get { return _bar; }
        set
        {
            if(_bar != value)
            {
                 _bar = value;
                 BarId = value.Id;
            }
        }
     }
}

class Bar 
{
    public int Id { get; set; }
}

然后假设我有以下代码:

var f = new Foo() { Bar = new Bar() };
SaveFoo(f);

我应该在 SaveFoo 中做什么才能以正确的顺序将对象保存到数据库中?

重要说明:我正在使用 MyGeneration 从我的 SQL 数据结构中生成所有这些代码,并且在生成时我可以访问所有约束。

4

1 回答 1

1

你必须由内而外地工作。

如果你的类中有一个“导航属性”(在本例中是 Foo 中的 Bar),它将伴随着一个外部 id (BarID)。因此,您必须先保存嵌套对象,然后再保存对象本身。

您在这里面临的问题是循环属性(作者写书,书有作者),在这种情况下,您必须正确定义哪个是主要关系,哪个应该被忽略。

然后下一个问题是级联删除。

这是你问的吗?

于 2011-09-21T00:26:56.717 回答