gpt4 book ai didi

subsonic3 - 亚音速 :SimpleRepository Parent Child relationship

转载 作者:行者123 更新时间:2023-12-02 22:32:45 26 4
gpt4 key购买 nike

我正在尝试使用 Subsonic3 中的 SimpleRepository 功能 - 首先,我必须对 RobC 表示衷心的感谢 - Subsonic 真的很棒,我迫不及待地想看到 SimpleRepository 的其他更新。我非常喜欢迁移方法(开发人员/类驱动而不是从数据库开始)。

我看过这里的帖子: Parent and Child object in SimpleRepository但我还是有点困惑。

如果我定义了这些类:

public class Permit {

public int PermitID {get; set;}
public string Number { get; set; }
public DateTime? DateIssued { get; set; }
public Product product { get; set; }
}

public class Product
{
public int ProductID { get; set; }
public string Value { get; set; }

}

然后我想保存许可证数据,我应该做什么?我是否应该在 Permit 类中定义一个 ProductID,然后以编程方式将它们链接起来?或者下面的代码应该有效吗?

 var repo = new SimpleRepository("ECPermit", SimpleRepositoryOptions.RunMigrations);
var permit = new Permit();
var product = new Product();

permit.Number = "apermit";
permit.DateAdded = DateTime.Now;

product.Value = "this is a product";
repo.Add(permit);
permit.product = product;
repo.Add(product);

这正在创建“许可证”和“产品”表,但它们之间没有链接。我究竟做错了什么?谢谢

最佳答案

这里您需要注意的是,关系是通过填充外键值创建的。因此,您在示例中要做的是创建许可证并保存它,然后设置许可证的 ProductID(但不保存此信息),然后保存产品。如果您按如下方式重新排序代码,ProductID 将被正确设置:

 var repo = new SimpleRepository("ECPermit", SimpleRepositoryOptions.RunMigrations);
var permit = new Permit();
var product = new Product();

product.Value = "this is a product";
repo.Add(product);

permit.Number = "apermit";
permit.DateAdded = DateTime.Now;
permit.ProductId = product.Id;
repo.Add(permit);

关于subsonic3 - 亚音速 :SimpleRepository Parent Child relationship,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1438000/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com