1

我想知道何时需要在模型类构造函数中实例化属性以及何时不需要实例化是否有很好的解释?

MS EF 网站上的文档很好,涵盖了很多相关主题

关系和导航属性 - http://msdn.microsoft.com/en-us/data/jj713564
使用 API 配置关系http://msdn.microsoft.com/en-us/data/jj591620%20%22Configuring%20relationships% 20with%20API

实体框架类库 http://msdn.microsoft.com/en-us/library/hh289362%28v=vs.103%29.aspx

并且我也通过阅读书籍编程实体框架 - Julia Lerman 编写的 Code First

我想更好地了解何时需要在模型构造函数中实例化属性。
我在 MS 文档和书中看到了示例,在模型构造函数中有和没有新属性的情况下。某些解决方案使用带有新的 Up 对象的构造函数而其他解决方案不使用,这很可能是有充分理由的。
似乎Virtual ICollectionhasnew List<>和 complex 类型 has new RefObj。但是简单virtual navigation property的 ModelObject 类型没有新的就可以了。

我可以在不了解每个约定类的内部结构的情况下坚持一个模式吗?还是我应该阅读另一个主题?

4

1 回答 1

1

您永远不需要在模型构造函数中实例化属性以使 EF 工作,但它使它更方便。

例如,如果您有一个 Order 类,并且它有 Order Detail 的子类,并且您想将一个新 Order 添加到您的数据库中。

不初始化 OrderDetails

var order = new Order();
order.OrderDetails.Add(new OrderDetail()); // this would error because OrderDetails is null

一种选择是调用 order.OrderDetails = new List(); 在你使用 Add() 之前,但是你需要在你想使用 Add() 的任何地方重复该代码。相反,您可以将该代码放在构造函数中,然后 OrderDetails 将准备好与所有新创建的订单一起使用。

于 2012-11-21T15:56:00.203 回答