首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Subsonic:SimpleRepository父子关系

Subsonic:SimpleRepository父子关系
EN

Stack Overflow用户
提问于 2009-09-17 10:36:36
回答 1查看 611关注 0票数 4

我正在尝试使用Subsonic3中的SimpleRepository功能--首先,我必须对RobC说声谢谢-- Subsonic真的很棒,我迫不及待地想看到SimpleRepository的更多更新。我是迁移方法的铁杆粉丝(开发人员/类驱动,而不是从数据库开始)。

我已经看了这里的帖子:Parent and Child object in SimpleRepository,但我仍然有点困惑。

如果我已经定义了这些类:

代码语言:javascript
复制
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,然后以编程方式将它们链接起来?或者,下面的代码应该有效吗?

代码语言:javascript
复制
 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);

这是在创建Permit和Product表,但它们之间没有链接。我做错了什么?谢谢

EN

回答 1

Stack Overflow用户

发布于 2009-09-17 11:18:12

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

代码语言:javascript
复制
 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);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1438000

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档