1

我有以下问题。在调试一个我正在使用 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; }

如果有任何帮助,我将不胜感激。

4

2 回答 2

1

您需要显式调用DbContext.SaveChanges()

// add client stuff
context.SaveChanges();
于 2012-07-20T22:22:42.380 回答
0

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

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

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

于 2012-07-21T15:30:31.853 回答