Đối với mỗi thực thể có quan hệ một đến nhiều với thực thể khác khi tôi cố gắng thêm mục mới, có vẻ như tôi phải xác định danh sách các mục có liên quan đến thực thể này. Ví dụ, cho phép nói rằng tôi có một thực thể ProductType
mà có một danh sách các Products
như sau:Làm cách nào để xác định Nullable EntitySet <>?
[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); }
}
}
khi tôi cố gắng thêm một mới ProductType
như thế:
ProductType newType = new ProductType { Name = "newType" };
_productRepository.Add(newType); //InsertOnSubmit() and SaveChanges()
nó mang lại cho tôi một ngoại lệ rằng Products
là null:
Object reference not set to an instance of an object
cùng một vấn đề với tất cả các thực thể có từ một đến nhiều phấn khởi với các thực thể khác. vì vậy làm thế nào tôi có thể cho phép null cho EntitySet <> đại diện cho một đến nhiều Quan hệ
Cảm ơn, 1 cho việc sử dụng các nhà thiết kế để so sánh các ánh xạ của tôi, nó hoạt động tốt như thế này: 'this._products = new EntitySet ((đơn vị sản phẩm) => entity.ProductType = this, (Product entity) => entity.ProductType = null); ' –
Rất vui được trợ giúp. Thông thường, cách tốt nhất để tìm hiểu cách thực hiện thủ công là xem những gì các nhà thiết kế tạo ra và sau đó mở rộng chúng từ đó. –