gpt4 book ai didi

c# - 如何定义 Nullable EntitySet<>?

转载 作者:太空狗 更新时间:2023-10-29 23:33:54 25 4
gpt4 key购买 nike

对于每个与其他实体具有一对多关系的实体,当我尝试添加新项目时,似乎我必须定义与该实体相关的这些项目列表。例如,假设我有一个 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 为空:

Object reference not set to an instance of an object

所有与其他实体具有一对多关系的实体都有同样的问题。那么我如何允许代表一对多关系的 EntitySet<> 为 null

最佳答案

您缺少为 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();
}

关于c# - 如何定义 Nullable EntitySet<>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7844230/

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