相关元素的相关元素

时间:2012-07-20 21:21:57

标签: asp.net-mvc-3 entity-framework ef-code-first

我有以下问题。在调试我正在使用Code First进行一些游戏的项目时,这些项目不会被添加到购买中。购买将添加到客户端。

这是我种子数据的方式。

public class PublicDatabaseInitializer : DropCreateDatabaseIfModelChanges<PublicDataContext>
{
    protected override void Seed(PublicDataContext context)
    {
        context.Clients.Add(new Client()
        {
            // ...
            Purchases = new[]
                       {
                           new Purchase()
                           {
                               // ...
                               Items = new[]
                                        {
                                            new Item()
                                            {
                                                // ...
                                            },
                                            new Item()
                                            {
                                                // ...
                                            }
                                        }
                           },
                           new Purchase()
                           {
                               // ...
                           }
                       }
        });
        base.Seed(context);
    }
}

这就是我声明两个ICollection属性的方式:

public virtual ICollection<Purchase> Purchases { get; set; }
public virtual ICollection<Item> Items{ get; set; }

我会感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

您需要明确调用DbContext.SaveChanges()

// add client stuff
context.SaveChanges();

答案 1 :(得分:0)

感谢Slauma,我找到了解决方案。正如本文所述:stackoverflow.com/a/11548688/270591。虽然我仍然不清楚原因,但解决方案的方法如下:

从连接字符串中删除user instance = true

我想这与访问权限和/或权限有关。