对于在尝试添加新项目时与其他实体具有一对多关系的每个实体,似乎我必须定义与该实体相关的这些项目的列表。例如,假设我有一个ProductType实体,该实体具有Products的列表,如下所示:[Table]public class ProductType{ [Column(IsPrimaryKey = true, IsDbGenerated = true)] public int Id { get; private set; } [Column] public string Name { get; set; } private EntitySet<Product> _products; [Association(Storage = "_products", ThisKey = "Id", OtherKey = "ProductTypeId")] public EntitySet<Product> Products { get { return _products; } set { _products.Assign(value); } }}当我尝试添加这样的新ProductType时:ProductType newType = new ProductType { Name = "newType" };_productRepository.Add(newType); //InsertOnSubmit() and SaveChanges()它给我一个异常(exception),即Products为null:Object reference not set to an instance of an object与其他实体具有一对多关系的所有实体都存在相同的问题。所以我该如何允许EntitySet 的null表示一对多的关系 (adsbygoogle = window.adsbygoogle || []).push({}); 最佳答案 您缺少为Products实体集设置默认设置的生成的构造函数。将此与设计师为您生成的内容进行比较。例如,Northwind的Product构造函数如下所示: public Product() { this._Order_Details = new EntitySet<Order_Detail>(new Action<Order_Detail>(this.attach_Order_Details), new Action<Order_Detail>(this.detach_Order_Details)); this._Category = default(EntityRef<Category>); this._Supplier = default(EntityRef<Supplier>); OnCreated(); } (adsbygoogle = window.adsbygoogle || []).push({});
10-04 17:54